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)); }