private void CopyProperties(CmsPage page, EditPageModel editPage) { editPage.Id = page.Id; //TODO HARD CODED if (page.Type.Title == "BLOG HOME") { editPage.Title = page.NaviNode.NodeName; } else { editPage.Title = page.Title; } editPage.NaviTitle = String.IsNullOrEmpty(page.NaviTitle) ? page.Title : page.NaviTitle; editPage.Layout = page.Layout; if (page.Html != null) { editPage.Content = page.Html.Content; editPage.Sidebar = page.Html.Sidebar; editPage.Header = page.Html.Header; editPage.Summary = page.Html.Summary; } editPage.Description = page.Description; editPage.Keywords = page.Keywords; editPage.NaviNodeId = page.NaviNode.Id; editPage.IsPublished = page.IsPublished; editPage.Created = page.Created; editPage.Type = page.Type == null? "PAGE" : page.Type.Title; editPage.IsCommentable = page.Commentable; }
public ActionResult Edit(EditPageModel editPage) { CmsPage page = _db.Set <CmsPage>().Single(e => e.Id == editPage.Id); PermissionType accessMode = SecurityHelper.PageAccessMode(_db, page); if (accessMode < PermissionType.Edit) { throw new Exception("Access Denided."); } // TODO Check config to see what the page content format is if (!editPage.Content.StartsWith("{")) { ModelState.AddModelError("Error", "Content format does not match. Please refresh your page."); } if (ModelState.IsValid) { CopyProperties(editPage, page); page.Status = CmsPage.STATUS_CHANGE_SAVED; if (editPage.Layout == 8) { //TODO HARD CODED page.Title = "Summary"; } // Only save the page when it has a unique URL. CmsPage pageWithDuplicateUrl = _db.Set <CmsPage>().SingleOrDefault(e => e.Url.Equals(page.Url, StringComparison.InvariantCultureIgnoreCase)); if (pageWithDuplicateUrl == null || pageWithDuplicateUrl.Id == editPage.Id) { _db.SaveChanges(); return(Redirect("/" + page.Url)); } else { ModelState.AddModelError("NaviTitle", "Cannot have same page URL in the same navigation section."); } //return RedirectToAction("Page", "Cms", new { id = page.FriendlyId }); } var naviNode = page.NaviNode; ViewBag.NaviNode = naviNode; ViewBag.BaseNode = CmsPageBase.FindBaseNode(naviNode); ViewBag.AccessMode = accessMode; ViewBag.Status = CmsPage.STATUS_EDITING_START; ViewBag.Modified = DateTime.Now; bool havingWebPart = false; editPage.Content = _pageEngine.ReplaceTokens( page: page, webpartHeaders: new StringBuilder(), havingWebPart: out havingWebPart, controllerContext: this.ControllerContext, isEditState: true); return(View(editPage)); }
public ActionResult Edit(int IDpage, string username) { EditPageModel model = new EditPageModel(); model.Username = username; using (ZavrsniEFentities db = new ZavrsniEFentities()) { model.IDpage = IDpage; var selPage = db.Page.FirstOrDefault(u => u.IDpage.Equals(IDpage)); var query = (from p in db.Privacy orderby p.Description select p).ToList(); model.PageTitle = selPage.name; model.Privacy = new SelectList(query, "IDprivacy", "description", selPage.IDprivacy); var tagList = (from t in db.PageTag join a in db.Tag on t.IDtag equals a.ID where t.IDpage == IDpage orderby a.name select t).Include(t => t.Tag).ToList(); model.TagList = tagList; var contribList = (from c in db.Contributor join u in db.User on c.IDuser equals u.IDuser orderby u.Username where c.IDpage == IDpage select c).Include(c => c.User).ToList(); model.ContributorList = contribList; } return(View(model)); }
public ActionResult Edit(EditPageModel model, bool IsPopup) { if (ModelState.IsValidField("MenuItemName")) { if (Request["Submit"] == "Save") { Page page = _pageRepository.GetPageById(model.Id); model.IsView = HttpContext.Request["IsView"] != null ? true : false; model.IsAdd = HttpContext.Request["IsAdd"] != null ? true : false; model.IsEdit = HttpContext.Request["IsEdit"] != null ? true : false; model.IsDelete = HttpContext.Request["IsDelete"] != null ? true : false; model.IsImport = HttpContext.Request["IsImport"] != null ? true : false; model.IsExport = HttpContext.Request["IsExport"] != null ? true : false; model.IsPrint = HttpContext.Request["IsPrint"] != null ? true : false; // always update the parent bevore children AutoMapper.Mapper.Map(model, page); _pageRepository.UpdatePage(page); } else if (Request["Submit"] == "Delete") { Page page = _pageRepository.GetPageById(model.Id); TempData["AlertMessage"] = "MenuPage was delete successfully"; } //Reset cache for pagerightaccess & pagemenu Erp.BackOffice.Helpers.CacheHelper.PagesAccessRight = null; Erp.BackOffice.Helpers.CacheHelper.PagesMenu = null; if (IsPopup) { return(RedirectToAction("_ClosePopup", "Home", new { area = "", FunctionCallback = "ClosePopupAndReloadPage" })); } else { TempData[Globals.SuccessMessageKey] = App_GlobalResources.Wording.InsertSuccess; return(RedirectToAction("Index")); } } string errors = string.Empty; foreach (var modalState in ModelState.Values) { errors += modalState.Value + ": "; foreach (var error in modalState.Errors) { errors += error.ErrorMessage; } } ViewBag.errors = errors; if (Request.UrlReferrer != null) { return(Redirect(Request.UrlReferrer.AbsoluteUri)); } return(RedirectToAction("Index")); }
protected override async Task OnParametersSetAsync() { var requestUri = string.IsNullOrWhiteSpace(IdentityUserId) ? $"api/admin/users/edit/{Id}" : $"api/admin/users/edit-by-identity-user-Id/{IdentityUserId}"; Model = await ApiService.GetFromJsonAsync <EditPageModel>(requestUri); }
// // GET: /Administration/Page/Edit/5 public ActionResult Edit(int id, string languageId) { var editPage = new EditPageModel(); Page page = _pageRepository.GetPageById(id); if (page != null) { AutoMapper.Mapper.Map(page, editPage); } return(View("Edit", editPage)); }
public ActionResult Edit(int filmID) { var model = new EditPageModel() { Film = _db.FilmSet.Where(f => f.FilmID == filmID).FirstOrDefault(), Genres = _db.GenreSet.AsEnumerable().ToList(), AgeRatings = _db.AgeRatingSet.AsEnumerable().ToList(), SelectedAgeRating = null, SelectedGenre = null }; return(View(model)); }
private void CopyProperties(EditPageModel editPage, CmsPage page) { //page.MenuOrder = editPage.MenuOrder; page.Title = editPage.Title; page.NaviTitle = String.IsNullOrEmpty(editPage.NaviTitle) ? editPage.Title : editPage.NaviTitle; page.Layout = editPage.Layout; if (page.Html == null) { page.Html = new CmsPageHtml(); page.Html.Content = editPage.Content; page.Html.Sidebar = editPage.Sidebar; page.Html.Header = editPage.Header; page.Html.Summary = editPage.Summary; } else { page.Html.Content = editPage.Content; page.Html.Sidebar = editPage.Sidebar; page.Html.Header = editPage.Header; page.Html.Summary = editPage.Summary; } page.Description = editPage.Description; page.Keywords = string.Join(",", editPage.Keywords); //TODO HARD CODED if (page.NaviNode == null) { page.NaviNode = _db.Set <NaviNode>().Single(e => e.Id == (editPage.Layout == 8 ? 33 : editPage.NaviNodeId)); } page.Modified = DateTime.Now; page.ModifiedBy = User.Identity.Name.ToUpper(); if (page.CreatedBy == null) { page.Created = DateTime.Now; page.CreatedBy = User.Identity.Name.ToUpper(); } if (editPage.Type == "BLOG" && editPage.Created.HasValue) { page.Created = editPage.Created.Value; } page.Type = _db.Set <ContentType>().SingleOrDefault(e => e.Title == editPage.Type) ?? _db.Set <ContentType>().Single(e => e.Title == "PAGE"); page.Commentable = editPage.IsCommentable; _urlHelper.UpdatePageUrl(page); }
private async Task <EditPageModel> BuildEditPageModelAsync(User user) { if (user == null) { return(null); } var result = new EditPageModel { User = new EditPageModel.UserModel { Id = user.Id, DisplayName = user.DisplayName }, Info = new EditPageModel.InfoModel { UserId = user.IdentityUserId, Email = user.Email, Status = user.Status } }; var identityUser = await _userManager.FindByIdAsync(user.IdentityUserId); if (identityUser != null) { foreach (var role in await _roleManager.Roles.ToListAsync()) { var selected = await _userManager.IsInRoleAsync(identityUser, role.Name); result.Roles.Add(new EditPageModel.RoleModel { Name = role.Name, Selected = selected }); } result.Info.UserName = identityUser.UserName; result.Info.EmailConfirmed = identityUser.EmailConfirmed; result.Info.PhoneNumber = identityUser.PhoneNumber; result.Info.PhoneNumberConfirmed = identityUser.PhoneNumberConfirmed; result.Info.TwoFactorEnabled = identityUser.TwoFactorEnabled; result.Info.LockoutEnabled = identityUser.LockoutEnabled; result.Info.AccessFailedCount = identityUser.AccessFailedCount; result.Info.LockoutEnd = identityUser.LockoutEnd; } return(result); }
public ActionResult Edit(string id) { int internalId = CmsPage.FromFriendlyId(id); CmsPage page = _db.Set <CmsPage>().Single(e => e.Id == internalId); PermissionType accessMode = SecurityHelper.PageAccessMode(_db, page); if (accessMode < PermissionType.Edit) { //return RedirectToAction("Page", "Cms", new { id = id }); return(Redirect("/" + page.Url)); } if ((page.Status == CmsPage.STATUS_EDITING_START || page.Status == CmsPage.STATUS_EDITING_AGAIN) && page.ModifiedBy != User.Identity.Name.ToUpper()) { //return RedirectToAction("Page", "Cms", new { id = page.FriendlyId }); return(Redirect("/" + page.Url)); } EditPageModel editPage = new EditPageModel(); CopyProperties(page, editPage); bool havingWebPart = false; StringBuilder webpartHeaders = new StringBuilder(); editPage.Content = _pageEngine.ReplaceTokens( page: page, webpartHeaders: webpartHeaders, havingWebPart: out havingWebPart, controllerContext: this.ControllerContext, isEditState: true); ViewBag.HavingWebPart = havingWebPart; ViewBag.WebpartHeaders = webpartHeaders.ToString(); ViewBag.NaviNode = page.NaviNode; ViewBag.BaseNode = CmsPageBase.FindBaseNode(page); ViewBag.ModifiedBy = HttpContext.User.Identity.Name; ViewBag.AccessMode = accessMode; ViewBag.Modified = DateTime.Now; ViewBag.Status = CmsPage.STATUS_EDITING_START; editPage.Status = CmsPage.STATUS_EDITING_START; return(View(editPage)); }
public virtual ActionResult Edit(int id) { EditPageModel selectedPage = _pageSerivce.GetEditingData(id); IList <PageDropDownList> lstPages = _pageSerivce.DropDownListData(selectedPage.Id); lstPages.Insert(0, new PageDropDownList { Id = -1, Title = "بدون مادر" }); ViewBag.ParentPagesList = new SelectList(lstPages, "Id", "Title", selectedPage.ParentId); ViewBag.PageStatus = DropDownList.Status(selectedPage.Status); ViewBag.CommentStatus = DropDownList.CommentStatus(selectedPage.CommentStatus); return(PartialView(MVC.Admin.Page.Views._Edit, selectedPage)); }
public virtual ActionResult Edit(EditPageModel pageModel) { var selectedPage = new Page { Body = pageModel.Body.ToSafeHtml(), CommentStatus = pageModel.CommentStatus, Description = pageModel.Description, EditedByUser = _userService.Find(User.Identity.Name), Keyword = pageModel.Keyword, ModifiedDate = DateAndTime.GetDateTime(), Id = pageModel.Id, Order = pageModel.Order, Parent = _pageService.Find(pageModel.ParentId.Value), Status = pageModel.Status, Title = pageModel.Title, SubTitle = pageModel.SubTitle, IconClass = pageModel.IconClass, FeatureImage = pageModel.FeatureImage, ExternalLink = pageModel.ExternalLink, }; _pageService.Update(selectedPage); _uow.SaveChanges(); #region Indexing updated book by Lucene.NET //Index updated book lucene.NET new LucenePageSearch(_pageService); LucenePageSearch.ClearLuceneIndexRecord(pageModel.Id); Page currentPage = _pageService.Find(pageModel.Id); LucenePageSearch.AddUpdateLuceneIndex(new LucenePageModel { SubTitle = currentPage.SubTitle, Body = HtmlUtility.RemoveHtmlTags(currentPage.Body), Description = currentPage.Description, Keywords = currentPage.Keyword, PageId = currentPage.Id, Title = currentPage.Title }); #endregion return(PartialView(MVC.Admin.Shared.Views._Alert, new Alert { Message = "صفحه مورد نظر با موفقیت ویرایش شد", Mode = AlertMode.Success })); }
public async Task <ActionResult> Update(EditPageModel model) { var site = await _contextService.CurrentSiteAsync(); var user = await _contextService.CurrentUserAsync(); var identityUser = await _userManager.FindByIdAsync(model.Info.UserId); if (identityUser != null && model.Roles.Count > 0) { foreach (var role in model.Roles) { if (role.Selected) { if (!await _userManager.IsInRoleAsync(identityUser, role.Name)) { await _userManager.AddToRoleAsync(identityUser, role.Name); } } else { if (await _userManager.IsInRoleAsync(identityUser, role.Name)) { await _userManager.RemoveFromRoleAsync(identityUser, role.Name); } } } } var command = new UpdateUser { Id = model.User.Id, DisplayName = model.User.DisplayName, SiteId = site.Id, UserId = user.Id, Roles = model.Roles.Where(x => x.Selected).Select(x => x.Name).ToList() }; await _userService.UpdateAsync(command); return(Ok()); }
public async Task <IActionResult> Edit([FromRoute] int id, [FromBody] EditPageModel model) { if (model == null) { return(this.InvalidRequest()); } model.ID = id; var result = await this.PageService.Edit(model); if (result.Success) { return(this.Success(result.Data)); } else { return(this.Error(result.ErrorMessage)); } }
public ActionResult EditPage(int?pageId) { var wikiPage = _db.WikiPages.Find(pageId) ?? new WikiPage(); if (pageId.HasValue && !CanEditPage(wikiPage)) { return(this.HttpNotFound()); } var selectList = _db.WikiPages.Where(x => x.IsLayout).Select(x => new SelectListItem() { Text = x.PageTitle, Value = x.Id.ToString(), Selected = x.Id == wikiPage.LayoutPageId, }).ToList(); selectList.Insert(0, new SelectListItem() { Value = "", Text = "-", }); var model = new EditPageModel() { WikiPage = wikiPage, LayoutPagesSelectList = selectList, IsAdmin = IsWikiAdmin, Form = new EditPageFormModel() { Content = ParseContentForEditor(wikiPage.Content ?? ""), Id = wikiPage.Id, Title = wikiPage.PageTitle, IsLayout = wikiPage.IsLayout, StickCategory = wikiPage.StickCategory, StickGlobal = wikiPage.StickGlobal, IsSystemPage = wikiPage.IsSystemPage, Tags = string.Join(", ", wikiPage.Tags.Select(x => x.TagForLink)), } }; return(View(model)); }
public ActionResult Edit(Guid?id) { if (userId == null) { throw new HttpException(403, "Brak dostepu"); } KsiazkaModel ksiazka; if (id != null) { ksiazka = ksiazki.Get((Guid)id); } else { ksiazka = new KsiazkaModel(); } EditPageModel model = new EditPageModel(ksiazka, autorzy.GetList()); return(View(model)); }
public ActionResult Edited(EditPageModel model1) { var editedFilm = model1.Film; editedFilm.AgeRating = _db.AgeRatingSet.Where(r => r.Title == model1.SelectedAgeRating).FirstOrDefault(); editedFilm.Genre = _db.GenreSet.Where(r => r.Title == model1.SelectedGenre).FirstOrDefault(); var uneditedFilm = _db.FilmSet.Where(t => t.FilmID == editedFilm.FilmID).FirstOrDefault(); #region params uneditedFilm.Title = editedFilm.Title; uneditedFilm.Country = editedFilm.Country; uneditedFilm.TimeLength = editedFilm.TimeLength; uneditedFilm.ImagePath = editedFilm.ImagePath; uneditedFilm.Description = editedFilm.Description; uneditedFilm.MoreGenres = editedFilm.MoreGenres; uneditedFilm.Actors = editedFilm.Actors; uneditedFilm.Producer = editedFilm.Producer; uneditedFilm.KinopoiskLink = editedFilm.KinopoiskLink; uneditedFilm.Genre = editedFilm.Genre; uneditedFilm.AgeRating = editedFilm.AgeRating; #endregion _db.SaveChanges(); var model = new SessionsPageModel() { Films = _db.FilmSet.AsEnumerable().ToList(), FilmSessions = _db.FilmSessionSet.AsEnumerable().ToList() }; return(View("Sessions", model)); }
public ActionResult Edit(Guid?id, EditPageModel model) { model.AutorModelList = autorzy.GetList(); if (!ModelState.IsValid) { return(View(model)); } if (id == null) { ksiazki.Add(model.KsiazkaModel); } else { EditPageModel lmodel = new EditPageModel(ksiazki.Get((Guid)id), autorzy.GetList()); lmodel.KsiazkaModel.Tytul = model.KsiazkaModel.Tytul; lmodel.KsiazkaModel.AutorId = model.KsiazkaModel.AutorId; lmodel.KsiazkaModel.IloscStron = model.KsiazkaModel.IloscStron; lmodel.KsiazkaModel.Okladka = model.KsiazkaModel.Okladka; } return(RedirectToAction("Index")); }
public async Task <OperationResult <PageModel> > Edit(EditPageModel model) { var entity = await this.BlogContext.Pages.SingleOrDefaultAsync(t => t.ID == model.ID); if (entity == null) { return(OperationResult <PageModel> .Failure(L["The page does not exists anymore"].Value)); } if (model.Parent.HasValue) { if (model.Parent.Value == entity.ID) { return(OperationResult <PageModel> .Failure(L["You cannot set as parent"].Value)); } var parent = await this.BlogContext.Pages.SingleOrDefaultAsync(t => t.ID == model.Parent.Value); if (parent == null || parent.ParentID.HasValue) { return(OperationResult <PageModel> .Failure(L["Parent does not exists"].Value)); } } model.Alias = await this.GenerateAlias(model.ID, model.Alias, model.Title); Mapper.Map(model, entity); entity.EditDate = model.Date ?? DateTime.Now; entity.ParentID = model.Parent; await this.BlogContext.SaveChangesAsync(); this.Cache.Remove(CACHE_KEY); var pageModel = (await this.Transform(entity)).First(); return(new OperationResult <PageModel>(pageModel)); }
public virtual ActionResult Edit(EditPageModel pageModel) { var selectedPage = new Page { Body = pageModel.Body.ToSafeHtml(), CommentStatus = pageModel.CommentStatus, Description = pageModel.Description, EditedByUser = _userService.Find(User.Identity.Name), Keyword = pageModel.Keyword, ModifiedDate = DateAndTime.GetDateTime(), Id = pageModel.Id, Order = pageModel.Order, Parent = _pageSerivce.Find(pageModel.ParentId.Value), Status = pageModel.Status, Title = pageModel.Title }; _pageSerivce.Update(selectedPage); _uow.SaveChanges(); return(PartialView(MVC.Admin.Shared.Views._Alert, new Alert { Message = "برگه مورد نظر با موفقیت ویرایش شد", Mode = AlertMode.Success })); }
public virtual ActionResult Edit(EditPageModel pageModel) { var selectedPage = new Page { Body = pageModel.Body.ToSafeHtml(), CommentStatus = pageModel.CommentStatus, Description = pageModel.Description, EditedByUser = _userService.Find(User.Identity.Name), Keyword = pageModel.Keyword, ModifiedDate = DateAndTime.GetDateTime(), Id = pageModel.Id, Order = pageModel.Order, Parent = _pageSerivce.Find(pageModel.ParentId.Value), Status = pageModel.Status, Title = pageModel.Title }; _pageSerivce.Update(selectedPage); _uow.SaveChanges(); return PartialView(MVC.Admin.Shared.Views._Alert, new Alert { Message = "برگه مورد نظر با موفقیت ویرایش شد", Mode = AlertMode.Success }); }
public async Task <ActionResult> EditPage(int IDpage, string username, EditPageModel model) { using (ZavrsniEFentities db = new ZavrsniEFentities()) { var selPage = db.Page.FirstOrDefault(u => u.IDpage.Equals(IDpage)); if (ModelState.IsValid) { var user = db.User.FirstOrDefault(u => u.Username.Equals(username)); selPage.name = model.PageTitle; if (model.PageTitle == null) { return(Content("Page title cannot be empty!", "text/html")); } if (Request["PrivacyDropDown"].Any()) { var privSel = Request["PrivacyDropDown"]; var privacy = Convert.ToInt32(privSel); selPage.IDprivacy = privacy; } selPage.IDeditor = user.IDuser; selPage.TimeChanged = DateTime.Now; if (model.Tag != null) { var tagModel = model.Tag.ToLower(); var existsInPage = from p in db.PageTag join t in db.Tag on p.IDtag equals t.ID where t.name == tagModel select t; var existsTag = from t in db.Tag where t.name == tagModel select t; if (!existsTag.Any()) { var newTag = db.Tag.Create(); newTag.name = tagModel; db.Tag.Add(newTag); db.SaveChanges(); } if (!existsInPage.Any()) { var newPageTag = db.PageTag.Create(); newPageTag.IDtag = existsTag.First().ID; newPageTag.IDpage = IDpage; db.PageTag.Add(newPageTag); db.SaveChanges(); } } if (model.Contributor != null) { var userExists = from u in db.User where u.Username == model.Contributor select u; if (!userExists.Any()) { //return RedirectToAction("Edit", new { IDpage = IDpage, Username = username }); return(Content("User does not exist, please try again!", "text/html")); } var exists = from t in db.Contributor join u in db.User on t.IDuser equals u.IDuser where u.Username == model.Contributor && t.IDpage == IDpage select t; if (!exists.Any()) { var contribUser = db.User.FirstOrDefault(u => u.Username.Equals(model.Contributor)); var newContributor = db.Contributor.Create(); newContributor.IDpage = IDpage; newContributor.IDuser = contribUser.IDuser; newContributor.IsAuthor = false; db.Contributor.Add(newContributor); db.SaveChanges(); } } db.Entry(selPage).State = EntityState.Modified; db.SaveChanges(); //return RedirectToAction("Edit", new { IDpage = IDpage, Username = username }); return(Content("Changes were successfully saved!", "text/html")); } } return(Content("Edit failed, please try again!", "text/html")); //return RedirectToAction("Edit", new { IDpage = IDpage, Username = username }); }
public ActionResult Create(EditPageModel editPage, string isCreateNewSection, string newSectionName) { NaviNode currentNode = _db.Set <NaviNode>().Single(e => e.Id == editPage.NaviNodeId); PermissionType accessMode = SecurityHelper.NaviAccessMode(_db, currentNode); if (accessMode < PermissionType.Create) { throw new Exception("Access Denided."); } // TODO: add site specical chc if (CmsHelper.Site == "fratalk") { if (string.IsNullOrEmpty(editPage.Keywords)) { ModelState.AddModelError("keywords", "The topics field is required."); } } if (ModelState.IsValid) { CmsPage page = new CmsPage(); CopyProperties(editPage, page); page.Status = CmsPage.STATUS_CHANGE_SAVED; if (editPage.Layout == 8) { //TODO HARD CODED isCreateNewSection = "1"; newSectionName = editPage.Title; page.Title = "Summary"; page.NaviTitle = "Summary"; } if (isCreateNewSection == "1" && newSectionName != null && newSectionName.Length > 0) { NaviNode naviNode = new NaviNode(); naviNode.NodeName = newSectionName; naviNode.Parent = page.NaviNode; naviNode.MenuOrder = CountChildren(page.NaviNode.Id); naviNode.Type = page.NaviNode.Type; naviNode.Modified = DateTime.Now; naviNode.ModifiedBy = User.Identity.Name.ToUpper(); naviNode.Created = DateTime.Now; naviNode.CreatedBy = User.Identity.Name.ToUpper(); page.NaviNode = naviNode; page.MenuOrder = 0; page.Type = _db.Set <ContentType>().SingleOrDefault(e => e.Title == "BLOG HOME") ?? naviNode.Type; } else { page.MenuOrder = CountChildren(page.NaviNode.Id); page.Type = page.NaviNode.Type; } _urlHelper.UpdatePageUrl(page); // Only save the page when it has a unique URL. CmsPage pageWithDuplicateUrl = _db.Set <CmsPage>().SingleOrDefault(e => e.Url.Equals(page.Url, StringComparison.InvariantCultureIgnoreCase)); if (pageWithDuplicateUrl == null) { _db.Set <CmsPage>().Add(page); _db.SaveChanges(); return(Redirect("/" + page.Url)); } else { ModelState.AddModelError("NaviTitle", "Cannot have same page URL in the same navigation section."); } } // The first page in the menu is the return page // if create page action is canceled. CmsPage returnPage = currentNode.Pages.OrderBy(e => e.MenuOrder).FirstOrDefault(); ViewBag.ReturnUrl = "/" + (returnPage == null ? "" : returnPage.Url); ViewBag.NaviNode = currentNode; ViewBag.BaseNode = CmsPageBase.FindBaseNode(currentNode); ViewBag.AccessMode = accessMode; bool havingWebPart = false; editPage.Content = _pageEngine.ReplaceTokens( page: new CmsPage { Id = editPage.Id, Html = new CmsPageHtml { Content = editPage.Content }, NaviNode = currentNode, Layout = editPage.Layout }, webpartHeaders: new StringBuilder(), havingWebPart: out havingWebPart, controllerContext: this.ControllerContext, isEditState: true); return(View(editPage)); }
// // GET: /Page/Create //id is the navigation id public ActionResult Create(int id, int layoutId = 1) { NaviNode naviNode = _db.Set <NaviNode>().Single(e => e.Id == id); PermissionType accessMode = SecurityHelper.NaviAccessMode(_db, naviNode); if (accessMode < PermissionType.Create) { throw new Exception("Access Denided."); } ViewBag.NaviNode = naviNode; ViewBag.AccessMode = accessMode; ViewBag.BaseNode = CmsPageBase.FindBaseNode(naviNode); EditPageModel editPageModel = new EditPageModel(); editPageModel.NaviNodeId = naviNode.Id; var layout = _db.Set <PageLayout>().SingleOrDefault(e => e.Id == layoutId); if (layout == null) { layout = _db.Set <PageLayout>().First(); } bool havingWebPart = false; StringBuilder webpartHeaders = new StringBuilder(); string template = layout.Template; var tempPage = new CmsPage { Id = id, Html = new CmsPageHtml { Content = layout.Template }, Layout = layout.Id, NaviNode = naviNode }; // hack if (tempPage.Layout == 10) { tempPage.Html.Content = new JavaScriptSerializer().Serialize(new { Summaryregion = "Post Summary", region1 = "Post Content" }); } editPageModel.Content = _pageEngine.ReplaceTokens( page: tempPage, webpartHeaders: webpartHeaders, havingWebPart: out havingWebPart, controllerContext: ControllerContext, isEditState: true); editPageModel.Layout = layout.Id; editPageModel.Type = layout.Type.Title; ViewBag.HavingWebPart = havingWebPart; ViewBag.WebpartHeaders = webpartHeaders.ToString(); // The first page in the menu is the return page // if create page action is canceled. CmsPage returnPage = naviNode.Pages.OrderBy(e => e.MenuOrder).FirstOrDefault(); ViewBag.ReturnUrl = "/" + (returnPage == null ? "" : returnPage.Url); editPageModel.Status = CmsPage.STATUS_EDITING_START; editPageModel.IsCommentable = true; return(View(editPageModel)); }