Пример #1
0
        public ResponseModel CancelAppliedOrder(ChangeOrderStatusRequesrModel model)
        {
            var response = new ResponseModel
            {
                Success  = false,
                Messages = new List <string>()
            };

            if (model == null || string.IsNullOrEmpty(model.OrderId) || string.IsNullOrEmpty(model.UserId))
            {
                response.Messages.Add("Data not mapped");
                response.Data = model;
            }
            else
            {
                try
                {
                    response.Success = OrderService.CancelAppliedOrder_ByRider(model);
                    if (response.Success)
                    {
                        response.Messages.Add("Order Canceled");
                    }
                    else
                    {
                        response.Messages.Add("Could not cancel the order");
                    }
                    response.Data = model;
                }
                catch (Exception excep)
                {
                    response.Messages.Add("Something bad happened.");
                }
            }
            return(response);
        }
Пример #2
0
        public static bool CancelAppliedOrder_ByRider(ChangeOrderStatusRequesrModel model)
        {
            using (var dbContext = new DeliversEntities())
            {
                string newStatus = "";
                var    order     = dbContext.Orders.FirstOrDefault(o => o.Id.ToString() == model.OrderId);
                if (order != null)
                {
                    //  var combinedOrders = dbContext.Orders.Where(o => o.SerialNo == order.SerialNo).ToList();
                    // foreach (var dbo in combinedOrders)
                    {
                        // CHECK IF HE APPLIED FOR THIS ORDER OT NOT
                        var isAppliedForOrder = order.PickedBy == model.UserId;
                        if (!isAppliedForOrder)
                        {
                            return(false);
                        }

                        newStatus      = OrderHistoryEnu.ConfirmedByRestaurant.Value;
                        order.Status   = newStatus;
                        order.PickedBy = Guid.Empty.ToString();

                        var currentHis = dbContext.OrderHistories.FirstOrDefault(d => d.OrderId.ToString() == order.Id.ToString() && d.IsCurrent);
                        if (currentHis != null)
                        {
                            currentHis.IsCurrent = false;
                        }

                        dbContext.OrderHistories.Add(new OrderHistory
                        {
                            OrderId   = order.Id,
                            DateTime  = CommonService.GetSystemTime(),
                            Status    = OrderHistoryEnu.CanceledByRider.Value,
                            IsCurrent = false
                        });
                        dbContext.OrderHistories.Add(new OrderHistory
                        {
                            OrderId   = order.Id,
                            DateTime  = CommonService.GetSystemTime(),
                            Status    = newStatus,
                            IsCurrent = true
                        });
                        dbContext.SaveChanges();
                    }

                    // generate notifications
                    NotificationService.ProcessNotificationRequest(OrderHistoryEnu.CanceledByRider.Value, order.Id);
                    NotificationService.ProcessNotificationRequest(newStatus, order.Id);

                    return(true);
                }
                return(false);
            }
        }
Пример #3
0
 public static bool ChangeOrderStatus(ChangeOrderStatusRequesrModel model)
 {
     using (var dbContext = new DeliversEntities())
     {
         var order = dbContext.Orders.FirstOrDefault(o => o.Id.ToString() == model.OrderId);
         if (order != null)
         {
             order.Status = model.NewStatus;
             dbContext.OrderHistories.Add(new OrderHistory
             {
                 OrderId  = order.Id,
                 DateTime = DateTime.Now,
                 MovedBy  = model.UserId,
                 Status   = model.NewStatus
             });
             dbContext.SaveChanges();
             return(true);
         }
         return(false);
     }
 }
Пример #4
0
        public static bool ChangeOrderStatus(ChangeOrderStatusRequesrModel model)
        {
            string newStatus;

            using (var dbContext = new DeliversEntities())
            {
                var order = dbContext.Orders.FirstOrDefault(o => o.Id.ToString() == model.OrderId);
                if (order != null)
                {
                    newStatus = model.NewStatus;

                    order.Status    = model.NewStatus;
                    order.UpdatedAt = CommonService.GetSystemTime();

                    var currentHis = dbContext.OrderHistories.FirstOrDefault(d => d.OrderId.ToString() == model.OrderId && d.IsCurrent);
                    if (currentHis != null)
                    {
                        currentHis.IsCurrent = false;
                    }

                    dbContext.OrderHistories.Add(new OrderHistory
                    {
                        OrderId   = order.Id,
                        DateTime  = CommonService.GetSystemTime(),
                        Status    = model.NewStatus,
                        IsCurrent = true,
                        Comments  = model.Comments
                    });
                    dbContext.SaveChanges();

                    // generate notifications
                    NotificationService.ProcessNotificationRequest(newStatus, order.Id);
                    return(true);
                }
                return(false);
            }
        }
Пример #5
0
        public ResponseModel UpdateOrderStatus(ChangeOrderStatusRequesrModel model)
        {
            var response = new ResponseModel
            {
                Success  = false,
                Messages = new List <string>()
            };

            if (model == null || string.IsNullOrEmpty(model.OrderId) || string.IsNullOrEmpty(model.NewStatus) || string.IsNullOrEmpty(model.UserId))
            {
                response.Messages.Add("Data not mapped");
                response.Data = model;
            }
            else if (!CommonService.VerifyOrderStatus(model.NewStatus))
            {
                response.Messages.Add("Invalid order status");
                response.Data = model;
            }
            else
            {
                try
                {
                    var currentOrderStatus = OrderService.GetOrderCurrentStatus(model.OrderId);
                    var newOrderStatus     = OrderHistoryEnu.GetOrderStatus(model.NewStatus);

                    if (currentOrderStatus == null || newOrderStatus == null)
                    {
                        response.Success = false;
                        response.Messages.Add("Invalid orderId/Order Status.");
                        response.Data = model;
                        return(response);
                    }
                    else if (currentOrderStatus.Value == newOrderStatus.Value)
                    {
                        response.Success = false;
                        response.Messages.Add("Current status already is : " + currentOrderStatus.Value);
                        response.Data = model;
                        return(response);
                    }

                    if (newOrderStatus.Order - currentOrderStatus.Order > 1)
                    {
                        response.Success = false;
                        response.Messages.Add("Invalid order status shifting. Current status is :" + currentOrderStatus.Value);
                        response.Data = currentOrderStatus.Value + " -> " + newOrderStatus.Value;
                        return(response);
                    }

                    response.Success = OrderService.ChangeOrderStatus(model);
                    if (response.Success)
                    {
                        response.Data = "status has been changed";
                    }
                    else
                    {
                        response.Data = "Order does not exist with id " + model.OrderId;
                    }
                    response.Messages.Add("Success");
                }
                catch (Exception excep)
                {
                    response.Messages.Add("Something bad happened.");
                }
            }
            return(response);
        }