public async Task <IActionResult> Index()
        {
            List <BarViewModel>      topBarsVM      = new List <BarViewModel>();
            List <CocktailViewModel> topCocktailsVM = new List <CocktailViewModel>();

            var topBars = await barService.FindBarsForCatalogAsync("", "", 1, "Rating", "0;5", "Descending", 6);

            var topCocktails = await cService.FindCocktailsForCatalogAsync("", "", 1, "Rating", "0;5", "Descending", "", 5);

            foreach (var bar in topBars.Item1)
            {
                topBarsVM.Add(new BarViewModel(bar));
            }
            foreach (var cocktail in topCocktails.Item1)
            {
                topCocktailsVM.Add(new CocktailViewModel(cocktail));
            }

            var vm = new IndexViewModel()
            {
                Bars      = topBarsVM,
                Cocktails = topCocktailsVM
            };

            return(View(vm));
        }
        public async Task <IActionResult> BarSearchResults(string keyword, string criteria, string order, string page, string rating, string sortOrder, string pageSize)
        {
            Tuple <IList <Bar>, bool> searchResults;
            var model = new BarSearchViewModel()
            {
                Keyword          = keyword == null ? "" : keyword,
                SelectedCriteria = criteria,
                SelectedOrderBy  = order == null ? "" : order,
                Searched         = true,
                Page             = int.Parse(page)
            };
            var rate = rating == null ? "1;5" : rating;

            searchResults = await barService.FindBarsForCatalogAsync(model.Keyword, model.SelectedCriteria, model.Page, model.SelectedOrderBy, rate, sortOrder, int.Parse(pageSize));

            foreach (var bar in searchResults.Item1)
            {
                model.Bars.Add(new BarViewModel(bar));
            }
            model.LastPage = searchResults.Item2;
            return(PartialView("_BarSearchView", model));
        }