public async Task <IActionResult> Index(SearchRestaurantRequest searchRestaurantRequest, int page = 1) { var user = User; var restaurants = await restaurantService.GetRestaurantsByRequestAsync(page, user, searchRestaurantRequest); return(View(new SearchRestaurantViewModel { UniqueCities = await restaurantService.GetUniqueCitiesAsync(), PagingList = restaurants, SearchRestaurantRequest = searchRestaurantRequest })); }
public async Task <PagingList <Restaurant> > GetRestaurantsByRequestAsync(int page, ClaimsPrincipal user, SearchRestaurantRequest searchRestaurantRequest) { var restaurants = await applicationDbContext.Restaurants.Include(r => r.Meals).ToListAsync(); var filteredRestaurantsList = restaurants.Where(r => r.City.Equals(searchRestaurantRequest.City) || String.IsNullOrEmpty(searchRestaurantRequest.City)).OrderBy(r => r.Name).ToList(); var restaurantQuery = new List <Restaurant>(); if (String.IsNullOrEmpty(searchRestaurantRequest.MealName)) { restaurantQuery = filteredRestaurantsList; } else { foreach (Restaurant restaurant in filteredRestaurantsList) { foreach (Meal meal in restaurant.Meals) { if (meal.Name.ToLower().Contains(searchRestaurantRequest.MealName.ToLower())) { restaurantQuery.Add(restaurant); break; } } } } return(PagingList.Create(restaurantQuery, 10, page)); }
public async Task <List <Restaurant> > FindRestaurantsByCityAsync(SearchRestaurantRequest searchRestaurantRequest) { var restaurants = await applicationDbContext.Restaurants.Where(r => r.City == searchRestaurantRequest.City).ToListAsync(); return(restaurants); }