public ActionResult Add(PageCreateEditModel model) { var canPublish = _cmsAuthorization.RequestPermission(CMSPermissions.PublishPage); if (ModelState.IsValid) { if (model.IsApproved) model.IsApproved = canPublish; var p = MapPage(model); var slug = _pageService.CreateAndValidateSlug(p, false); if (!string.IsNullOrEmpty(slug)) { _pageService.CreatePage(p); var url = Url.Content("~" + p.Path); var contentModel = new ContentPage(p,url); if (Request.IsAjaxRequest()) return Json(contentModel); } else { ModelState.AddModelError("","The title specified would result in a duplicate page. Choose another parent page or modify the slug property."); } } return View(model); }
public ActionResult Add(Guid? parentId) { var canPublish = _cmsAuthorization.RequestPermission(CMSPermissions.PublishPage); var model = new PageCreateEditModel(); model.ParentId = parentId ?? PageConstants.DefaultPageId; model.IsApproved = canPublish; model.PublishDateUtc = Client.LocalNow(this.HttpContext); return View("AddEdit",model); }
private Page MapPage(PageCreateEditModel model) { Page p; if (model.Id.HasValue) p = _pageService.GetPage(model.Id.Value); else { p = new Page(); p.Id = Guid.NewGuid(); } p.ParentId = model.ParentId; p.Title = HttpUtility.HtmlEncode(model.Title); p.HtmlDescription = model.HtmlDescription; p.CreateDateUtc = DateTime.UtcNow; p.IsHomePage = model.IsHomePage; if (model.PublishDateUtc.HasValue) { var offset = Client.GetClientTimezoneOffsetInMinutes(this.HttpContext); p.PublishDateUtc = model.PublishDateUtc.Value.AddMinutes(offset); // p.PublishDateUtc = model.PublishDateUtc; } else { p.PublishDateUtc = DateTime.UtcNow; } p.MetaDescription = model.MetaDescription; p.MetaKeywords = model.MetaKeywords; p.IsApproved = model.IsApproved; p.IsActive = true; if (!model.Id.HasValue) { if (!string.IsNullOrEmpty(model.Slug)) p.Slug = model.Slug; else { p.Slug = _formatter.CreateSlug(model.Title, 45); } } else { if (!string.IsNullOrEmpty(model.Slug)) p.Slug = model.Slug.Trim(); } p.LastUpdateDateUtc = p.CreateDateUtc; return p; }
public ActionResult Edit(Guid id) { if (!_cmsAuthorization.RequestPermission(CMSPermissions.EditPage)) throw new HttpException(403, "Access Denied"); var canPublish = _cmsAuthorization.RequestPermission(CMSPermissions.PublishPage); var page = _pageService.GetPage(id); if (page == null) throw new HttpException(404, "Page does not exist"); var model = new PageCreateEditModel(page, this.HttpContext); model.IsApproved = canPublish; return View("AddEdit",model); }