コード例 #1
0
        public SaveOrderResponse PerformUpdateOrderStatus(UpdateOrderRequest request)
        {
            SaveOrderResponse response = new SaveOrderResponse();
            var modifiedDate           = DateTime.Now;

            try
            {
                using (var db = new CuddlyWombatEntities())
                {
                    db.Configuration.LazyLoadingEnabled   = false;
                    db.Configuration.ProxyCreationEnabled = false;

                    var orderToUpdate = (from o in db.Orders
                                         where o.OrderID == request.OrderID
                                         select o).FirstOrDefault();

                    if (orderToUpdate != null)
                    {
                        var orderHistory = new OrderHistory()
                        {
                            OrderID       = orderToUpdate.OrderID,
                            TableID       = orderToUpdate.TableID,
                            CustomerID    = orderToUpdate.CustomerID,
                            OrderTypeID   = orderToUpdate.OrderTypeID,
                            OrderStatusID = orderToUpdate.OrderStatusID,
                            TotalPrice    = orderToUpdate.TotalPrice,
                            PickUpTime    = orderToUpdate.PickUpTime,
                            IsPaid        = orderToUpdate.IsPaid,
                            DateCreated   = orderToUpdate.DateCreated,
                            DateModified  = modifiedDate
                        };

                        db.OrderHistories.Add(orderHistory);
                        orderToUpdate.OrderStatusID = request.OrderStatusID;
                        orderToUpdate.DateModified  = modifiedDate;
                    }
                    else
                    {
                        response.MessageString   = "Please select an order";
                        response.MessageStatusID = (byte)EMessageStatus.Fail;

                        return(response);
                    }

                    db.SaveChanges();

                    if (request.OrderStatusID == (byte)EOrderStatus.Canceled)
                    {
                        response.MessageString = "Order is cancelled";
                    }
                    else if (request.OrderStatusID == (byte)EOrderStatus.Completed)
                    {
                        response.MessageString = "Order Status updated to Completed";
                    }
                    response.MessageStatusID = (byte)EMessageStatus.Success;
                }
            }
            catch (Exception ex)
            {
                response.MessageStatusID = (byte)EMessageStatus.Exception;
                response.MessageString   = ex.Message;
            }

            return(response);
        }