Exemplo n.º 1
0
        public static GetOrdersResponseModel GetOrdersWaitingForPickup(GetOrdersListRequestModel requestModel)
        {
            using (var dbContext = new DeliversEntities())
            {
                requestModel.CurrentPage--;
                var response = new GetOrdersResponseModel();
                var list     = dbContext.Orders
                               .Where(
                    od =>
                    od.OrderHistories.Any(str => str.Status == OrderHistoryEnu.WaitingForPickup.Value))
                               .ToList();
                //&&
                //(string.IsNullOrEmpty(requestModel.SearchTerm) ||
                //(od.OrderDetails.Any(det => det.ItemDetail.ListItem.Name.ToLower().Contains(requestModel.SearchTerm.ToLower())) &&
                //od.OrderHistories.Count == 1 && od.OrderHistories.Any(str => str.Status == (int)OrderHistoryEnum.WaitingForPickup)))).ToList();


                if (list.Any())
                {
                    var take = list.Skip(requestModel.CurrentPage * requestModel.ItemsPerPage).
                               Take(requestModel.ItemsPerPage).ToList();
                    if (take.Any())
                    {
                        var finals = take.Select(obj => obj.MappOrderWaitingForPickup()).ToList();
                        response.Orders = finals;
                    }
                }
                response.ItemsPerPage = requestModel.ItemsPerPage;
                response.CurrentPage++;
                response.TotalItems = list.Count;
                return(response);
            }
        }
Exemplo n.º 2
0
        public ResponseModel OrdersWaitingForPickup(GetOrdersListRequestModel listModel)
        {
            var response = new ResponseModel
            {
                Success  = false,
                Messages = new List <string>()
            };

            if (listModel == null)
            {
                response.Messages.Add("Mandatory data can not be empty");
            }
            else if (listModel.CurrentPage <= 0 || listModel.ItemsPerPage <= 0)
            {
                response.Messages.Add("Current page/ItemsPerPage should be greater than 0");
            }
            else
            {
                try
                {
                    var orders = OrderService.GetOrdersWaitingForPickup(listModel);
                    response.Data = orders;
                    response.Messages.Add("Success");
                    response.Success = true;
                }
                catch (Exception excep)
                {
                    response.Messages.Add("Something bad happened.");
                }
            }
            return(response);
        }
Exemplo n.º 3
0
        public static GetOrdersResponseModel OrdersReadyToAssign(GetOrdersListRequestModel requestModel)
        {
            using (var dbContext = new DeliversEntities())
            {
                requestModel.CurrentPage--;
                var response = new GetOrdersResponseModel();
                var list     = dbContext.Orders
                               .Where(
                    od => od.Status == OrderHistoryEnu.ConfirmedByRestaurant.Value &&
                    od.OrderHistories.Any(str => str.Status == OrderHistoryEnu.ConfirmedByRestaurant.Value && str.IsCurrent))
                               .ToList();

                DbGeography   riderLoc = null;
                List <string> latlng   = new List <string>();
                if (!string.IsNullOrEmpty(requestModel.Cords) && requestModel.Cords != "")
                {
                    latlng = requestModel.Cords.Split('_').ToList();
                    if (latlng.Count == 2)
                    {
                        riderLoc = CommonService.ConvertLatLonToDbGeography(latlng[1], latlng[0]); // lat _ lng
                    }
                }

                var inRangeOrders = new List <Order>();

                if (list != null && list.Any())
                {
                    foreach (var o in list)
                    {
                        var dist = CommonService.GetDistance((double)riderLoc.Latitude, (double)riderLoc.Longitude, Convert.ToDouble(o.Cords.Latitude), Convert.ToDouble(o.Cords.Longitude));
                        //if ((int)dist < Convert.ToInt16(10))
                        {
                            inRangeOrders.Add(o);
                        }
                    }
                }

                if (inRangeOrders.Any())
                {
                    var take = list.Skip(requestModel.CurrentPage * requestModel.ItemsPerPage).
                               Take(requestModel.ItemsPerPage).ToList();
                    if (take.Any())
                    {
                        var finals = take.Select(obj => obj.MappOrderWaitingForPickup()).ToList();
                        response.Orders = finals;
                    }
                }
                response.ItemsPerPage = requestModel.ItemsPerPage;
                response.CurrentPage++;
                response.TotalItems = list.Count;
                return(response);
            }
        }