Esempio n. 1
0
        public ActionResult Index(string token)
        {
            var externalReviewLink = _externalReviewLinksRepository.GetContentByToken(token);

            if (!externalReviewLink.IsEditableLink())
            {
                return(new HttpNotFoundResult("Content not found"));
            }

            var content = _contentLoader.Get <IContent>(externalReviewLink.ContentLink);

            const string url = "Views/PagePreview/Index.cshtml";

            if (ModuleResourceResolver.Instance.TryResolvePath(typeof(PageEditController).Assembly, url,
                                                               out var resolvedPath))
            {
                var pagePreviewModel = new ContentPreviewModel
                {
                    Token = token,
                    Name  = content.Name,
                    EditableContentUrlSegment = $"/en/{_externalReviewOptions.ContentIframeEditUrlSegment}/{token}",
                    ReviewJsScriptPath        = GetJsScriptPath(),
                    ResetCssPath = GetResetCssPath(),
                    ReviewPins   = _serializerFactory.GetSerializer(KnownContentTypes.Json).Serialize(_approvalReviewsRepository.Load(externalReviewLink.ContentLink))
                };
                return(View(resolvedPath, pagePreviewModel));
            }

            return(new HttpNotFoundResult("Content not found"));
        }
        public ActionResult Index(string token)
        {
            var externalReviewLink = _externalReviewLinksRepository.GetContentByToken(token);

            if (!externalReviewLink.IsEditableLink())
            {
                return(new HttpNotFoundResult("Content not found"));
            }

            var content = _contentLoader.Get <IContent>(externalReviewLink.ContentLink);

            const string url          = "Views/PagePreview/Index.cshtml";
            var          startPageUrl = _startPageUrlResolver.GetUrl(externalReviewLink.ContentLink);

            if (ModuleResourceResolver.Instance.TryResolvePath(typeof(PageEditController).Assembly, url,
                                                               out var resolvedPath))
            {
                var serializer       = _serializerFactory.GetSerializer(KnownContentTypes.Json);
                var pagePreviewModel = new ContentPreviewModel
                {
                    Token = token,
                    Name  = content.Name,
                    EditableContentUrlSegment = $"{UrlPath.Combine(startPageUrl, _externalReviewOptions.ContentIframeEditUrlSegment)}/{token}",
                    AddPinUrl          = $"{UrlPath.EnsureStartsWithSlash(_externalReviewOptions.ReviewsUrl)}/AddPin",
                    RemovePinUrl       = $"{UrlPath.EnsureStartsWithSlash(_externalReviewOptions.ReviewsUrl)}/RemovePin",
                    ReviewJsScriptPath = GetJsScriptPath(),
                    ResetCssPath       = GetResetCssPath(),
                    ReviewPins         = serializer.Serialize(_approvalReviewsRepository.Load(externalReviewLink.ContentLink)),
                    Metadata           = serializer.Serialize(_propertyResolver.Resolve(content as ContentData))
                };
                return(View(resolvedPath, pagePreviewModel));
            }

            return(new HttpNotFoundResult("Content not found"));
        }