public ActionResult Create(string id) { var model = new AddEditContentViewModel(); model = model.PopulateAsNew(id, db); //model.Validate(db, ModelState); return(View(model)); }
public ActionResult Edit(string id = null, int version = 0, UserContext.UserContextName context = UserContext.UserContextName.None) { if (id == null) { return(RedirectToAction("Create")); } var model = new AddEditContentViewModel(); model = model.Populate(id, context, version, db, userContext); if (model == null) { return(HttpNotFound()); } return(View(model)); }
public ActionResult Create(AddEditContentViewModel model) { model.Validate(db, ModelState); if (ModelState.IsValid) { var content = model.ToEntity(db); if (content.ContentId == 0) { db.Contents.Add(content); } db.SaveChanges(); ContentCache.Remove(model.Path, model.UserContext); ShowGenericSavedMessage(); return(RedirectToAction("Index")); } return(View(model)); }
public ActionResult Edit(AddEditContentViewModel model) { model.Validate(db, ModelState); if (ModelState.IsValid || model.SubmitAction.Equals("Delete", StringComparison.CurrentCultureIgnoreCase) || model.SubmitAction.Equals("Archive", StringComparison.CurrentCultureIgnoreCase)) { var errors = ContentManager.HandleContentEdit(db, model); if (errors.Any()) { foreach (var item in errors) { ModelState.AddModelError(item.Key, item.Value); } return(View(model)); } db.SaveChanges(); ContentCache.Remove(model.Path, model.UserContext); ShowGenericSavedMessage(); return(RedirectToAction("Index")); } return(View(model)); }
/// <summary> /// Backend routine for saving, archiving, publishing and updating content availability new and existing content. /// </summary> /// <param name="db">The database.</param> /// <param name="model">The model.</param> /// <returns></returns> public static List <KeyValuePair <string, string> > HandleContentEdit(ProviderPortalEntities db, AddEditContentViewModel model) { var errors = new List <KeyValuePair <string, string> >(); var invalidOperation = AppGlobal.Language.GetText("SiteContent_Edit_InvalidOperation", "That operation is invalid for the current content."); var notFound = AppGlobal.Language.GetText("SiteContent_Edit_NotFound", "This content is no longer available."); if (String.IsNullOrWhiteSpace(model.SubmitAction)) { errors.Add(new KeyValuePair <string, string>("", invalidOperation)); return(errors); } // Save if (model.SubmitAction.Equals("Save", StringComparison.CurrentCultureIgnoreCase)) { var content = model.ToEntity(db); if (content.ContentId == 0) { db.Contents.Add(content); } return(errors); } var item = db.Contents.FirstOrDefault(x => x.ContentId == model.ContentId); if (item == null) { errors.Add(new KeyValuePair <string, string>("", notFound)); return(errors); } if (model.SubmitAction.Equals("UpdateAvailability", StringComparison.CurrentCultureIgnoreCase) && item.RecordStatusId == (int)Constants.RecordStatus.Live) { EnsureContextAvailability(db, model.ContentId, model.Path, model.UserContext); item.UserContext = (int)model.UserContext; item.ModifiedByUserId = Permission.GetCurrentUserId(); item.ModifiedDateTimeUtc = DateTime.UtcNow; db.SaveChanges(); return(errors); } if (model.SubmitAction.Equals("Publish", StringComparison.CurrentCultureIgnoreCase) && item.RecordStatusId != (int)Constants.RecordStatus.Live) { EnsureContextAvailability(db, model.ContentId, model.Path, model.UserContext); item.RecordStatusId = (int)Constants.RecordStatus.Live; item.ModifiedByUserId = Permission.GetCurrentUserId(); item.ModifiedDateTimeUtc = DateTime.UtcNow; db.SaveChanges(); return(errors); } if (model.SubmitAction.Equals("Archive", StringComparison.CurrentCultureIgnoreCase) && item.RecordStatusId != (int)Constants.RecordStatus.Archived) { item.RecordStatusId = (int)Constants.RecordStatus.Archived; item.ModifiedByUserId = Permission.GetCurrentUserId(); item.ModifiedDateTimeUtc = DateTime.UtcNow; db.SaveChanges(); return(errors); } errors.Add(new KeyValuePair <string, string>("", invalidOperation)); return(errors); }