public static GetListResponseModel GetI_Favourite_temsForList(GetFavouriteListRequestModel requestModel) { DbGeography userLoc = null; List <string> latlng = new List <string>(); if (!string.IsNullOrEmpty(requestModel.Cords) && requestModel.Cords != "") { latlng = requestModel.Cords.Split('_').ToList(); if (latlng.Count == 2) { userLoc = CommonService.ConvertLatLonToDbGeography(latlng[1], latlng[0]); // lat _ lng } } using (var dbContext = new DeliversEntities()) { requestModel.CurrentPage--; var response = new GetListResponseModel(); var newList = new List <ListItemLocal>(); string searchText = null; if (!string.IsNullOrEmpty(requestModel.SearchTerm)) { searchText = requestModel.SearchTerm.ToLower(); } var list = dbContext.ListItems_Favt.Where(item => (string.IsNullOrEmpty(searchText) || item.ListItem.Name.ToLower().Contains(searchText) || item.ListItem.Description.ToLower().Contains(searchText) || (item.ListItem.ItemDetails.Any(det => det.Name.ToLower().Contains(searchText))) )).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.ListItem.MapListItem()).ToList(); /// foreach (var rest in finals) { var dist = CommonService.GetDistance((double)userLoc.Latitude, (double)userLoc.Longitude, Convert.ToDouble(rest.LocationObj.Latitude), Convert.ToDouble(rest.LocationObj.Longitude)); // if ((int)dist < Convert.ToInt16(20)) { var disst = Math.Round((double)dist, 2); rest.LocationObj = null; rest.Distance = disst; rest.Name = rest.Name; newList.Add(rest); } } response.Items = newList.OrderBy(obj => obj.Distance).ToList(); } } response.ItemsPerPage = requestModel.ItemsPerPage; response.CurrentPage++; response.TotalItems = list.Count; 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); } }
public static List <UserLocal> GetAvaialableDeliveryBoys(DbGeography location) { DbGeography userLoc = location; #region location conversion //List<string> latlng = new List<string>(); //if (!string.IsNullOrEmpty(location) && location != "") //{ // latlng = location.Split('_').ToList(); // if (latlng.Count == 2) // { // userLoc = CommonService.ConvertLatLonToDbGeography(latlng[1], latlng[0]); // lat _ lng // } //} #endregion var riders = new List <UserLocal>(); using (var dbContext = new DeliversEntities()) { var allDevliveryBoyes = dbContext.AspNetUsers.Where(o => o.Type == 0 && (o.Status ?? false) && (o.IsApproved ?? false)).ToList(); if (allDevliveryBoyes != null && allDevliveryBoyes.Any()) { foreach (var d in allDevliveryBoyes) { var dloc = dbContext.Rider_Location_Map.FirstOrDefault(loc => loc.UserId == d.Id); if (dloc != null) { var dist = CommonService.GetDistance((double)userLoc.Latitude, (double)userLoc.Longitude, Convert.ToDouble(dloc.Location.Latitude), Convert.ToDouble(dloc.Location.Longitude)); // if ((int)dist < Convert.ToInt16(10)) { riders.Add(d.Mapper()); } } } } } return(riders); }
public static GetListResponseModel GetItemsForList(GetListRequestModel requestModel) { var distanceFrom = 0; var distanceTo = 1000000; float rating = 0; if (!string.IsNullOrEmpty(requestModel.DistanceFrom)) { distanceFrom = Convert.ToInt16(requestModel.DistanceFrom); } if (!string.IsNullOrEmpty(requestModel.DistanceTo)) { distanceTo = Convert.ToInt16(requestModel.DistanceTo); } if (!string.IsNullOrEmpty(requestModel.Rating)) { rating = (float)Convert.ToDouble(requestModel.Rating); } DbGeography userLoc = null; List <string> latlng = new List <string>(); if (!string.IsNullOrEmpty(requestModel.Cords) && requestModel.Cords != "") { latlng = requestModel.Cords.Split('_').ToList(); if (latlng.Count == 2) { userLoc = CommonService.ConvertLatLonToDbGeography(latlng[1], latlng[0]); // lat _ lng } } using (var dbContext = new DeliversEntities()) { var allCats = GetCategories(true); if ((requestModel.IsWeb && (requestModel.TypeList == null || requestModel.TypeList.Count() == 0)) || (!requestModel.IsWeb && (requestModel.Type == -1))) { requestModel.TypeList = new List <int>(); requestModel.TypeList = allCats.Select(c => (int)c.CatId).ToList(); } requestModel.CurrentPage--; var response = new GetListResponseModel(); var newList = new List <ListItemLocal>(); string searchText = null; if (!string.IsNullOrEmpty(requestModel.SearchTerm)) { searchText = requestModel.SearchTerm.ToLower(); } var list = dbContext.ListItems.Where(item => item.Status && ((requestModel.IsWeb && requestModel.TypeList.Any(o => o == item.Type)) || (!requestModel.IsWeb && requestModel.Type == -1 && requestModel.TypeList.Any(o => o == item.Type)) || (item.Type == requestModel.Type && !requestModel.IsWeb)) && (string.IsNullOrEmpty(searchText) || item.Name.ToLower().Contains(searchText) || item.Address.ToLower().Contains(searchText) || item.Description.ToLower().Contains(searchText) || (item.ItemDetails.Any(det => det.Name.ToLower().Contains(searchText))) )).ToList(); if (list.Any()) { var finals = list.Select(obj => obj.MapListItem()).ToList(); foreach (var rest in finals) { var restRate = (float)Convert.ToDouble(rest.Rating); var dist = CommonService.GetDistance((double)userLoc.Latitude, (double)userLoc.Longitude, Convert.ToDouble(rest.LocationObj.Latitude), Convert.ToDouble(rest.LocationObj.Longitude)); if ((int)dist >= distanceFrom && (int)dist <= distanceTo && restRate >= rating) { var disst = Math.Round((double)dist, 2); rest.LocationObj = null; rest.Distance = disst; rest.Name = rest.Name; rest.TypeName = allCats.FirstOrDefault(c => c.CatId == rest.Type).Name; newList.Add(rest); } } newList = newList.OrderBy(obj => obj.Distance).ToList(); var take = newList.Skip(requestModel.CurrentPage * requestModel.ItemsPerPage). Take(requestModel.ItemsPerPage).ToList(); response.Items = take; } requestModel.CurrentPage++; response.ItemsPerPage = requestModel.ItemsPerPage; response.CurrentPage = requestModel.CurrentPage; response.TotalItems = newList.Count; return(response); } }