public ResponseModel GetListOfFavouriteItems(GetFavouriteListRequestModel listModel) { var response = new ResponseModel { Success = false, Messages = new List <string>() }; if (listModel == null || string.IsNullOrEmpty(listModel.UserId) || string.IsNullOrEmpty(listModel.Cords)) { response.Messages.Add("Mandatory data can not be empty"); response.Data = listModel; } else if (listModel.CurrentPage <= 0 || listModel.ItemsPerPage <= 0) { response.Messages.Add("Current page/ItemsPerPage should be greater than 0"); response.Data = listModel; } else { try { var items = ListService.GetI_Favourite_temsForList(listModel); response.Data = items; response.Messages.Add("Success"); response.Success = true; } catch (Exception excep) { response.Messages.Add("Something bad happened."); } } return(response); }
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); } }