public ActionResult MultiRowBatchEdit([C1JsonRequest] CollectionViewBatchEditRequest <Supplier> requestData) { return(this.C1Json(CollectionViewHelper.BatchEdit(requestData, batchData => { var itemresults = new List <CollectionViewItemResult <Supplier> >(); string error = string.Empty; bool success = true; try { if (batchData.ItemsCreated != null) { batchData.ItemsCreated.ToList().ForEach(st => { _db.Suppliers.Add(st); itemresults.Add(new CollectionViewItemResult <Supplier> { Error = "", Success = success, Data = st }); }); } if (batchData.ItemsDeleted != null) { batchData.ItemsDeleted.ToList().ForEach(supplier => { _db.Suppliers.Remove(supplier); itemresults.Add(new CollectionViewItemResult <Supplier> { Error = "", Success = success, Data = supplier }); }); } if (batchData.ItemsUpdated != null) { batchData.ItemsUpdated.ToList().ForEach(supplier => { _db.Entry(supplier).State = EntityState.Modified; itemresults.Add(new CollectionViewItemResult <Supplier> { Error = "", Success = success, Data = supplier }); }); } _db.SaveChanges(); } catch (Exception e) { error = GetExceptionMessage(e); success = false; #if RELOAD_ON_ERROR try { var refreshableObjects = _db.ChangeTracker.Entries().Where(c => c.State == EntityState.Modified).ToList(); refreshableObjects.ForEach(o => o.Reload()); } catch (Exception er) { error = error + Environment.NewLine + er.Message; } #endif } return new CollectionViewResponse <Supplier> { Error = error, Success = success, OperatedItemResults = itemresults }; }, () => _db.Suppliers.ToList()))); }
public ActionResult OnPostGridBatchEdit([C1JsonRequest] CollectionViewBatchEditRequest <Category> requestData) { return(JsonConvertHelper.C1Json(CollectionViewHelper.BatchEdit(requestData, batchData => { var itemresults = new List <CollectionViewItemResult <Category> >(); string error = string.Empty; bool success = true; try { if (batchData.ItemsCreated != null) { batchData.ItemsCreated.ToList().ForEach(st => { st.CategoryID = _categories.Count == 0 ? 1 : _categories.Max(c => c.CategoryID) + 1; _categories.Add(st); itemresults.Add(new CollectionViewItemResult <Category> { Error = "", Success = success, Data = st }); }); } if (batchData.ItemsDeleted != null) { batchData.ItemsDeleted.ToList().ForEach(category => { var removeItemIndex = _categories.FindIndex(c => c.CategoryID == category.CategoryID); _categories.RemoveAt(removeItemIndex); itemresults.Add(new CollectionViewItemResult <Category> { Error = "", Success = success, Data = category }); }); } if (batchData.ItemsUpdated != null) { batchData.ItemsUpdated.ToList().ForEach(category => { var updateItem = _categories.Find(c => c.CategoryID == category.CategoryID); updateItem.CategoryName = category.CategoryName; updateItem.Description = category.Description; itemresults.Add(new CollectionViewItemResult <Category> { Error = "", Success = success, Data = category }); }); } } catch (Exception e) { error = e.Message; success = false; } return new CollectionViewResponse <Category> { Error = error, Success = success, OperatedItemResults = itemresults }; }, () => _categories))); }