コード例 #1
0
        public JsonResult AddNewPageFromTemplate(string templatePath, string viewTemplate, string permalink, string title, int parent)
        {
            var result = new JsonResult()
            {
                Data = new
                {
                    success = false,
                    message = "There was an error processing you request."
                }
            };

            // check to see if permalink exists
            if (Context.ContentPages.Any(x => x.Permalink == permalink))
            {
                result.Data = new
                {
                    success = false,
                    message = "Permalink is already in use."
                };
                return(result);
            }

            var success = 0;
            var urlLink = "";
            var page    = new ContentPage
            {
                Title                  = title,
                IsActive               = false,
                CreateDate             = DateTime.UtcNow,
                Permalink              = permalink,
                DisplayName            = permalink,
                ParentNavigationItemId = parent,
                Template               = !String.IsNullOrEmpty(viewTemplate) ? viewTemplate.ToLower() : "blank",
                HTMLContent            = ContentUtils.RenderPartialViewToString(templatePath, null, ControllerContext, ViewData, TempData),
            };

            Context.ContentPages.Add(page);
            success = Context.SaveChanges();

            var parentHref = NavigationUtils.GetNavItemUrl(parent);

            if (!String.IsNullOrEmpty(parentHref))
            {
                urlLink = parentHref + page.Permalink;
            }

            if (success > 0)
            {
                urlLink     = string.IsNullOrEmpty(urlLink) ? "/" + page.Permalink : urlLink;
                result.Data = new
                {
                    id      = page.ContentPageId,
                    url     = urlLink,
                    success = true,
                    message = "Page created, redirecting."
                };
            }
            return(result);
        }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="take"></param>
        /// <param name="skip"></param>
        /// <param name="category"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public JsonResult LoadMoreRelatedBlogs(int take, int skip, string category, int id = 0)
        {
            var         result = new JsonResult();
            List <Blog> blogs  = model.GetMoreRelatedBlogs(take, skip, category, id);
            string      html   = ContentUtils.RenderPartialViewToString("/Views/Shared/Partials/RelatedBlogSinglePartial.cshtml", blogs, ControllerContext, ViewData, TempData);

            result.Data = new { html, skip = skip + take, buttonClass = blogs.Count() < take ? "hide" : "" };
            return(result);
        }
コード例 #3
0
        /// <summary>
        /// Get a list of blogs based on search term
        /// </summary>
        /// <param name="tags"></param>
        /// <returns></returns>
        public JsonResult LoadBlogsByTags(string tags = "", string category = "")
        {
            var         result = new JsonResult();
            List <Blog> blogs  = model.GetMoreBlogsByTags(tags, category);
            string      html   = ContentUtils.RenderPartialViewToString("/Views/Shared/Partials/BlogArticleSinglePartial.cshtml", blogs, ControllerContext, ViewData, TempData);

            result.Data = new { html = html, skip = 0, buttonClass = "hide" };
            return(result);
        }
コード例 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="lastMonth"></param>
        /// <param name="count"></param>
        /// <param name="idList"></param>
        /// <param name="user"></param>
        /// <param name="date"></param>
        /// <returns></returns>
        public JsonResult LoadMoreArchives(string lastMonth, int count, List <string> idList, string user = "", string date = "")
        {
            var result = new JsonResult();

            IEnumerable <string> archives = model.GetArchives(lastMonth, count, idList, user, date);

            string html = ContentUtils.RenderPartialViewToString("/Views/Shared/Partials/BlogArchiveSinglePartial.cshtml", archives, ControllerContext, ViewData, TempData);

            lastMonth   = !archives.Any() ? "0" : "";
            result.Data = new { html = html, lastMonth = lastMonth };

            return(result);
        }
コード例 #5
0
        public ActionResult ResponsiveImageTemplate(ResponsiveImageUtils.ResponsiveImageObject imageObject)
        {
            var result = new JsonResult();

            try
            {
                var html = ContentUtils.RenderPartialViewToString(
                    "~/Views/Shared/Partials/_ResponsiveImagePartial.cshtml", imageObject, ControllerContext, ViewData,
                    TempData);

                result.Data = new { success = true, html };
            }
            catch (Exception err)
            {
                result.Data = new { success = false, error = err };
            }

            return(result);
        }
コード例 #6
0
        public JsonResult GetRevisionList(int id)
        {
            var result = new JsonResult {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            };

            var drafts = Context.ContentPages.Where(x => x.ParentContentPageId == id || x.ContentPageId == id).OrderByDescending(x => x.PublishDate).ToList().Select(rev => new RevisionViewModel
            {
                Date         = TimeUtils.ConvertUTCToLocal(rev.PublishDate),
                ContentId    = rev.ContentPageId,
                AuthorName   = rev.DraftAuthorName,
                WasPublished = rev.WasPublished
            }).ToList();

            var html = ContentUtils.RenderPartialViewToString("/Areas/Admin/Views/Shared/Partials/RevisionsListInnerPartial.cshtml", drafts, ControllerContext, ViewData, TempData);

            result.Data = new { html };

            return(result);
        }
コード例 #7
0
        public JsonResult GetNewNavItem(int parentId)
        {
            var result = new JsonResult()
            {
                Data = new
                {
                    success = false,
                    message = "There was an error processing your request."
                }
            };
            string html    = "";
            var    success = 0;

            var navItem = new NavigationItem {
                ParentNavigationId = parentId, Name = "Menu Item"
            };

            Context.NavigationItems.Add(navItem);
            success = Context.SaveChanges();

            var container = new ParentNavViewContainer {
                NavItem = navItem, NavViewModel = new EditNavigationViewModel(parentId)
                {
                }
            };

            html = ContentUtils.RenderPartialViewToString("/Areas/Admin/Views/Navigation/ParentNavItemPartial.cshtml", container, ControllerContext, ViewData, TempData);

            result.Data = new { html };

            if (success > 0)
            {
                result.Data = new
                {
                    success = true,
                    message = "Retrieved new nav item",
                    html    = html
                };
            }
            return(result);
        }
コード例 #8
0
        public JsonResult AddNewPageFromTemplate(string templatePath, string viewTemplate, string permalink, string title, int parent)
        {
            var result         = new JsonResult();
            var contentUtility = new ContentUtils();

            // check to see if permalink exists
            if (contentUtility.CheckPermalink(permalink, 0, parent))
            {
                result.Data = new
                {
                    success = false,
                    message = "Permalink is already in use."
                };
                return(result);
            }

            var urlLink = "";
            var page    = new ContentPage
            {
                Title                  = title,
                IsActive               = false,
                CreateDate             = DateTime.UtcNow,
                Permalink              = permalink,
                DisplayName            = permalink,
                ParentNavigationItemId = parent,
                Template               = !String.IsNullOrEmpty(viewTemplate) ? viewTemplate.ToLower() : "blank",
                HTMLUnparsed           = ContentUtils.RenderPartialViewToString(templatePath, null, ControllerContext, ViewData, TempData),
                HTMLContent            = ContentUtils.RenderPartialViewToString(templatePath, null, ControllerContext, ViewData, TempData)
            };

            try
            {
                Context.ContentPages.Add(page);
                Context.SaveChanges();

                page.HTMLContent = ContentUtils.ReplacePageParametersInHtmlContent(page.HTMLUnparsed, page);
                Context.SaveChanges();
            }
            catch (Exception)
            {
                result.Data = new
                {
                    success = false,
                    message = "Page could not be created."
                };
                return(result);
            }

            CachedObjects.GetCacheContentPages(true);

            var parentHref = NavigationUtils.GetNavItemUrl(parent);

            if (!String.IsNullOrEmpty(parentHref))
            {
                urlLink = parentHref + page.Permalink;
            }

            urlLink     = string.IsNullOrEmpty(urlLink) ? "/" + page.Permalink : urlLink;
            result.Data = new
            {
                id      = page.ContentPageId,
                url     = urlLink,
                success = true,
                message = "Page created, redirecting."
            };

            return(result);
        }