コード例 #1
0
ファイル: OrderService.cs プロジェクト: BaqerNaqvi/DVS-dmn
        public static AlterOrderResponse AlterOrder_Admin(AlterOrderRequestModel source)
        {
            using (var dbContext = new DeliversEntities())
            {
                var response = new AlterOrderResponse {
                    isSuccesss = true
                };
                var totalAmount = source.Items.Sum(i => ItemDetailsService.GetItemDetailLocalById(i.itemId).Price *i.quantity);
                if (totalAmount <= 0)
                {
                    response.isSuccesss = false;
                    response.Message    = "Total amount can not be 0";
                    return(response);
                }
                var order = dbContext.Orders.FirstOrDefault(o => o.Id == source.OrderId);
                if (order != null)
                {
                    if (order.Status == OrderHistoryEnu.Deliverd.Value || order.Status == OrderHistoryEnu.PickedUp.Value)
                    {
                        response.isSuccesss = false;
                        response.Message    = "Can not change order with status: " + order.Status;
                        return(response);
                    }

                    if (order.Amount != totalAmount)
                    {
                        order.Amount    = totalAmount;
                        order.UpdatedAt = CommonService.GetSystemTime();
                        if (order.OrderDetails != null && order.OrderDetails.Any())
                        {
                            foreach (var det in order.OrderDetails)
                            {
                                var newQ = source.Items.FirstOrDefault(i => i.itemId == det.ItemId).quantity;
                                if (newQ != det.Quantity)
                                {
                                    det.Quantity = newQ;
                                }
                            }
                            dbContext.OrderHistories.Add(new OrderHistory {
                                DateTime  = CommonService.GetSystemTime(),
                                IsCurrent = false,
                                OrderId   = source.OrderId,
                                Status    = OrderHistoryEnu.OrderAltered.Value,
                                Comments  = source.Comments
                            });
                            dbContext.SaveChanges();
                        }
                    }
                }
                return(response);
            }
        }
コード例 #2
0
        public JsonResult AlterOrder(AlterOrderRequestModel source)
        {
            var response = OrderService.AlterOrder_Admin(source);

            return(Json(response, JsonRequestBehavior.AllowGet));
        }