// GET: Countries public async Task <IActionResult> Index(CountryIndexViewModel viewModel) { DbSet <Country> countries = _context.Countries; viewModel.CountriesGrouping = countries.Where(objCountry => (viewModel.CommonReligionFilter == null || objCountry.CommonReligion == viewModel.CommonReligionFilter) && (viewModel.ContinentFilter == null || objCountry.Continent == viewModel.ContinentFilter) && (viewModel.JewsAttitudeFilter == null || objCountry.AttitudeForJews <= viewModel.JewsAttitudeFilter)).Include(x => x.Cities) .GroupBy(x => x.Continent); viewModel.Continents = Enum.GetValues(typeof(Continent)); if (Request.Headers["X-Requested-With"] == "XMLHttpRequest") { return(PartialView("_FilteredCountries", viewModel)); } viewModel.TopCountries = countries.Take(5).ToList().OrderBy(x => { if (x.Cities == null) { return(0); } else { return(x.Cities.Count); } }).Take(5).ToList(); viewModel.JesAttitudes = Enum.GetValues(typeof(JewsAttitude)); viewModel.CommonReligions = Enum.GetValues(typeof(CommonReligion)); return(View(viewModel)); }
public async Task <IActionResult> Index(string successMessage = null, string failureMessage = null) { var lDtos = await this._referenceServices.GetCountries(); var lModel = new CountryIndexViewModel() { SuccessMessage = successMessage, FailureMessage = failureMessage, Countries = lDtos.Select(itm => Mapping.Mapper.Map <CountryViewModel>(itm)).ToList(), }; return(View(lModel)); }
public CountryIndexViewModel Countries(int page, int itemsOnPage, CountrySearchViewModel search) { int pageNumber = page - 1; var query = _countryRepository.GetAllCountries(); if (!string.IsNullOrEmpty(search.Name)) { query = query.Where(q => q.Name.Contains(search.Name)); } if (!string.IsNullOrEmpty(search.Priority)) { int priority; int.TryParse(search.Priority, out priority); query = query.Where(q => q.Priority == priority); } var model = new CountryIndexViewModel(); model.Countries = query .OrderBy(c => c.Id) .Skip(itemsOnPage * pageNumber) .Take(itemsOnPage) .Select(c => new CountryItemViewModel { Id = c.Id, Name = c.Name, DateCreate = c.DateCreate, Priority = c.Priority }); int count = _countryRepository.countCountries(); model.TotalPages = (int)Math.Ceiling((double)count / itemsOnPage); model.CurrentPage = page; model.itemsOnPage = itemsOnPage; model.Search = search; return(model); }