public function getUri()
    {
        if ( empty( $this->_uriCache ) )
        {
            $subdomainId = $this->getSubdomainId();
            $info = $this->getServiceLocator()
                         ->get( 'Zork\Db\SiteInfo' );

            if ( empty( $subdomainId ) )
            {
                $subdomainId = $info->getSubdomainId();
            }
            else if ( $subdomainId != $info->getSubdomainId() )
            {
                $subdomain = $this->getSubDomainModel()
                                  ->find( $subdomainId );

                if ( empty( $subdomain ) )
                {
                    $subdomainId = $info->getSubdomainId();
                }
            }

            if ( ! empty( $this->contentId ) )
            {
                $base   = '/';
                $locale = $this->getMapper()
                               ->getLocale();
                $uri    = $this->getUriModel()
                               ->findDefaultByContentSubdomain(
                                    $this->getContentId(),
                                    $subdomainId,
                                    $locale
                                );

                if ( ! empty( $subdomain ) )
                {
                    $base = $info->getSubdomainUrl(
                        (string) $subdomain->subdomain,
                        $base
                    );
                }

                if ( empty( $uri ) )
                {
                    $uri = $base . 'app/' . $locale .
                           '/paragraph/render/' . $this->getContentId();
                }
                else
                {
                    $uri = $base . ltrim( $uri->safeUri, '/' );
                    $this->_uriCache = $uri;
                }

                return $uri;
            }
        }

        return $this->_uriCache;
    }