public IActionResult Save(int id, EditModel model, bool apply = false) { if (ModelState.IsValid) { try { model.Item.Values = model.Values.Where(v => v.Reviewed || v.Value != null).ToList(); context.Update(model.Item); context.SaveChanges(); if (!apply) { return(Back(false)); } else { ModelState.Clear(); model.HasChanges = false; } } catch (Exception ex) { ModelState.AddModelError("", "An unexpected error occured."); ViewBag.Exception = ex; } } Response.Headers.Add("X-Sircl-History-Replace", Url.Action("Edit", new { id = model.Item.Id })); return(EditView(model)); }
public IActionResult Save(int id, EditModel model) { // Validate cultures: if (model.Item.Cultures != null) { var cultures = model.Item.Cultures.Split(',').Select(s => s.Trim()).Where(s => s.Length > 0).ToArray(); if (cultures.Distinct().Count() != cultures.Count()) { ModelState.AddModelError("Item.Cultures", "Value should not contain duplicates!"); } else if (cultures.Length == 0) { ModelState.AddModelError("Item.Cultures", "Value is required!"); } } else { ModelState.AddModelError("Item.Cultures", "Value is required!"); } // Validate modelstate and save: if (ModelState.IsValid) { try { context.Update(model.Item); context.SaveChanges(); return(this.Close(true)); } catch (Exception ex) { ModelState.AddModelError("", "An unexpected error occured."); ViewBag.Exception = ex; } } return(EditView(model)); }