public async Task <JsonResult> SaveData(ProductChangeViewModel products) { if (products.updated != null) { foreach (var item in products.updated) { this.productService.Update(item); } } if (products.deleted != null) { foreach (var item in products.deleted) { this.productService.Delete(item); } } if (products.inserted != null) { foreach (var item in products.inserted) { this.productService.Insert(item); } } await this.unitOfWork.SaveChangesAsync(); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); }
public async Task <JsonResult> SaveDataAsync(ProductChangeViewModel products) { if (products == null) { throw new ArgumentNullException(nameof(products)); } if (ModelState.IsValid) { if (products.updated != null) { foreach (var item in products.updated) { this.productService.Update(item); } } if (products.deleted != null) { foreach (var item in products.deleted) { this.productService.Delete(item); } } if (products.inserted != null) { foreach (var item in products.inserted) { this.productService.Insert(item); } } try{ var result = await this.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)); } }