protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); }
protected override void Dispose(bool disposing) { if (disposing) { _salesContext.Dispose(); } base.Dispose(disposing); }
protected virtual void Dispose(bool disposing) { if (!this.disposed) { if (disposing) { salesContext.Dispose(); } } this.disposed = true; }
protected virtual void Dispose(bool disposing) { if (!_disposed) { if (disposing) { _context.Dispose(); } _disposed = true; } }
protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { _salesContext.Dispose(); } disposedValue = true; } }
protected virtual void Dispose(bool disposing) { if (!_disposed) { if (disposing) { DirectoryHandler.Dispose(); _locker.Dispose(); _context.Dispose(); } } _disposed = true; }
public void Dispose() { _context.Dispose(); }
public JsonResult Save(SalesOrderViewModel salesOrderViewModel) { if (!ModelState.IsValid) { throw new ModelStateException(ModelState); } SalesOrder salesOrder = ViewModelHelpers.CreateSalesOrderFromSalesOrderViewModel(salesOrderViewModel); _salesContext.SalesOrders.Attach(salesOrder); if (salesOrder.ObjectState == ObjectState.Deleted) { //if deleting the order, must set all children to also be deleted foreach (var itemViewModel in salesOrder.Items) { var item = _salesContext.SalesOrderItems.Find(itemViewModel.Id); if (item != null) { item.ObjectState = ObjectState.Deleted; } } } else { //check to see if the client deleted any items in the order foreach (var itemIdToDelete in salesOrderViewModel.ItemsToDelete) { //retrieve item to be deleted SalesOrderItem item = _salesContext.SalesOrderItems.Find(itemIdToDelete); if (item != null) { item.ObjectState = ObjectState.Deleted; } } } _salesContext.ApplyStateChanges(); string msgToClient = string.Empty; try { _salesContext.SaveChanges(); } catch (DbUpdateConcurrencyException) { msgToClient = "Another user has modified this sales order since you began looking at it. Your changes have not been applied and your screen has been updated with the current values."; } catch (Exception ex) { throw new ModelStateException(ex); } if (salesOrder.ObjectState == ObjectState.Deleted) { //when deleting, do not return a view, tell the client to go to the Index instead //(we will program the client to look for this anonymous object) return(Json(new { newLocation = "/Sales/Index/" })); } //only assign msg here if no other msg assigned yet if (string.IsNullOrWhiteSpace(msgToClient)) { msgToClient = ViewModelHelpers.GetMessageToClient( salesOrderViewModel.ObjectState, salesOrderViewModel.CustomerName); } //save a copy of the id salesOrderViewModel.Id = salesOrder.Id; //dispose context to refresh data (someone else may have changed data) _salesContext.Dispose(); _salesContext = new SalesContext(); //refresh with latest data salesOrder = _salesContext.SalesOrders.Find(salesOrderViewModel.Id); salesOrderViewModel = ViewModelHelpers.CreateSalesOrderViewModelFromSalesOrder(salesOrder); salesOrderViewModel.MessageToClient = msgToClient; //return anonymous JSON object, not view model directly return(Json(new { salesOrderViewModel })); }
public void Dispose() { _salesContext.Dispose(); }
public JsonResult Save(SalesOrderViewModel vm) { if (ModelState.IsValid == false) { throw new ModelStateException(ModelState); } SalesOrder salesOrder = AppHelpers.CreateSalesOrderFromSalesOrderViewModel(vm); _salesContext.SalesOrders.Attach(salesOrder); if (salesOrder.ObjectState == ObjectState.Deleted) { foreach (SalesOrderItemViewModel orderItem in vm.SalesOrderItems) { SalesOrderItem itemToDelete = _salesContext.SalesOrderItems.Find(orderItem.Id); if (itemToDelete != null) { itemToDelete.ObjectState = ObjectState.Deleted; } } } else { foreach (int itemId in vm.SalesOrderItemsToDelete) { SalesOrderItem itemToDelete = _salesContext.SalesOrderItems.Find(itemId); if (itemToDelete != null) { itemToDelete.ObjectState = ObjectState.Deleted; } } } _salesContext.ApplyStateChanges();// .ChangeTracker.Entries<IObjectWithState>().Single().State = Helpers.ConvertState(salesOrder.ObjectState); string messageToClient = string.Empty; try { _salesContext.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { messageToClient = "Someone else have modified this sales order since you retrieved it. Your changes have not been applied. What you see now are the current values in the database."; } catch (Exception ex) { throw new ModelStateException(ex); } if (vm.ObjectState == ObjectState.Deleted) { return(Json(new { newLocation = "/Sales/Index/" })); } if (string.IsNullOrWhiteSpace(messageToClient)) { messageToClient = AppHelpers.GetMessageToClient(vm.ObjectState, salesOrder.CustomerName, salesOrder.Id); } vm.Id = salesOrder.Id; _salesContext.Dispose(); _salesContext = new SalesContext(); salesOrder = _salesContext.SalesOrders.Find(vm.Id); vm = AppHelpers.CreateSalesOrderViewModelFromSalesOrder(salesOrder); //.SalesOrderId = salesOrder.SalesOrderId; vm.MessageToClient = messageToClient; return(Json(new { salesOrderViewModel = vm })); }