public ActionResult SaveData(MenuItemChangeViewModel menuitems) { if (menuitems.updated != null) { foreach (var updated in menuitems.updated) { _menuItemService.Update(updated); } } if (menuitems.deleted != null) { foreach (var deleted in menuitems.deleted) { _menuItemService.Delete(deleted); } } if (menuitems.inserted != null) { foreach (var inserted in menuitems.inserted) { _menuItemService.Insert(inserted); } } _unitOfWork.SaveChanges(); return(Json(new { Success = true }, JsonRequestBehavior.AllowGet)); }
public async Task <JsonResult> SaveDataAsync(MenuItemChangeViewModel menuitems) { if (menuitems == null) { throw new ArgumentNullException(nameof(menuitems)); } if (ModelState.IsValid) { if (menuitems.updated != null) { foreach (var item in menuitems.updated) { menuItemService.Update(item); } } if (menuitems.deleted != null) { foreach (var item in menuitems.deleted) { menuItemService.Delete(item); } } if (menuitems.inserted != null) { foreach (var item in menuitems.inserted) { menuItemService.Insert(item); } } try { var result = await unitOfWork.SaveChangesAsync(); return(Json(new { success = true, result = result }, JsonRequestBehavior.AllowGet)); } catch (System.Data.Entity.Validation.DbEntityValidationException e) { var errormessage = string.Join(",", e.EntityValidationErrors.Select(x => x.ValidationErrors.FirstOrDefault()?.PropertyName + ":" + x.ValidationErrors.FirstOrDefault()?.ErrorMessage)); return(Json(new { success = false, err = errormessage }, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(Json(new { success = false, err = e.GetBaseException().Message }, JsonRequestBehavior.AllowGet)); } } else { var modelStateErrors = string.Join(",", ModelState.Keys.SelectMany(key => ModelState[key].Errors.Select(n => n.ErrorMessage))); return(Json(new { success = false, err = modelStateErrors }, JsonRequestBehavior.AllowGet)); } }