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); } }
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); }
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); } }