public async Task <IActionResult> Index() { List <Store> stores = await Context.Stores.ToListAsync(); HashSet <string> uniqueCities = GetUniqueCities(stores); List <Store> openStores = GetOpenStores(stores); var viewModel = new StoresCitiesViewModel { Stores = stores, CitiesWithStores = uniqueCities.ToArray(), OpenStores = openStores, ItemsInCart = await CountItemsInCart() }; return(View(viewModel)); }
public async Task <IActionResult> Index(StoresCitiesViewModel received) { List <Store> stores = await Context.Stores.ToListAsync(); HashSet <string> uniqueCities = GetUniqueCities(stores); // get open stores List <Store> openStores = stores.Where(store => store.IsOpen()).ToList(); if (!string.IsNullOrEmpty(received.Name)) { stores = stores.Where(store => store.Name.ToLower().Contains(received.Name.ToLower())).ToList(); } if (!string.IsNullOrEmpty(received.City)) { stores = stores.Where(store => store.Address.City == received.City).ToList(); } if (received.IsOpen) { stores = stores.Where(store => store.IsOpen()).ToList(); } var viewModel = new StoresCitiesViewModel { Stores = stores, CitiesWithStores = uniqueCities.ToArray(), OpenStores = openStores, Name = received.Name, City = received.City, IsOpen = received.IsOpen, ItemsInCart = await CountItemsInCart() }; return(View(viewModel)); }