示例#1
0
 protected override void Dispose(bool disposing)
 {
     if (disposing)
     {
         db.Dispose();
     }
     base.Dispose(disposing);
 }
示例#2
0
 protected override void Dispose(bool disposing)
 {
     if (disposing)
     {
         _salesContext.Dispose();
     }
     base.Dispose(disposing);
 }
示例#3
0
 protected virtual void Dispose(bool disposing)
 {
     if (!this.disposed)
     {
         if (disposing)
         {
             salesContext.Dispose();
         }
     }
     this.disposed = true;
 }
示例#4
0
 protected virtual void Dispose(bool disposing)
 {
     if (!_disposed)
     {
         if (disposing)
         {
             _context.Dispose();
         }
         _disposed = true;
     }
 }
示例#5
0
        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    _salesContext.Dispose();
                }

                disposedValue = true;
            }
        }
示例#6
0
 protected virtual void Dispose(bool disposing)
 {
     if (!_disposed)
     {
         if (disposing)
         {
             DirectoryHandler.Dispose();
             _locker.Dispose();
             _context.Dispose();
         }
     }
     _disposed = true;
 }
 public void Dispose()
 {
     _context.Dispose();
 }
示例#8
0
        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 }));
        }
示例#9
0
 public void Dispose()
 {
     _salesContext.Dispose();
 }
示例#10
0
        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 }));
        }