public async Task <IActionResult> Search(int id, [FromQuery] BarSearchViewModel vm)
        {
            var allCities = (await cityServices.GetAllDTOAsync());

            vm.AllCities = new List <SelectListItem>();
            vm.AllCities.Add(new SelectListItem("Select...", ""));

            allCities.ForEach(c => vm.AllCities.Add(new SelectListItem(c.Name, c.Id.ToString())));

            if (string.IsNullOrEmpty(vm.NameKey) && vm.MinRating == null && vm.CityId == null)
            {
                return(View(vm));
            }
            var dto = new BarSearchDTO
            {
                NameKey   = vm.NameKey,
                CityId    = vm.CityId,
                MinRating = vm.MinRating
            };

            vm.Paging.Count = await barServices.SerchResultCountAsync(dto);

            vm.Paging.ItemsPerPage = itemsPerPage;
            vm.Paging.CurrentPage  = id == 0 ? 1 : id;

            vm.Result = (await barServices.SearchAsync(dto, itemsPerPage, vm.Paging.CurrentPage))
                        .Select(b => b.MapToViewModel());

            return(View(vm));
        }