Minor changes
This commit is contained in:
@@ -23,7 +23,7 @@ public class PeopleController : Controller
|
||||
private readonly ISieveProcessor sieveProcessor;
|
||||
private readonly PagingSettings pagingSettings;
|
||||
|
||||
public PeopleController(EventsContext ctx, ISieveProcessor sieveProcessor, IOptions<PagingSettings> pagingSettings)
|
||||
public PeopleController(EventsContext ctx, ISieveProcessor sieveProcessor, IOptionsSnapshot<PagingSettings> pagingSettings)
|
||||
{
|
||||
this.ctx = ctx;
|
||||
this.sieveProcessor = sieveProcessor;
|
||||
@@ -40,6 +40,7 @@ public class PeopleController : Controller
|
||||
return RedirectToAction("Index", "Countries");
|
||||
}
|
||||
|
||||
await PopulatePeopleCountryFilterViewDataAsync(sieveModel.Filters);
|
||||
var viewModel = await BuildPeopleListAsync(sieveModel);
|
||||
if (Request.Headers.ContainsKey(Constants.HtmxHeaders.Request))
|
||||
{
|
||||
@@ -155,6 +156,7 @@ public class PeopleController : Controller
|
||||
}
|
||||
});
|
||||
|
||||
await PopulatePeopleCountryFilterViewDataAsync(sieveModel.Filters);
|
||||
var viewModel = await BuildPeopleListAsync(sieveModel);
|
||||
return PartialView("_PeopleList", viewModel);
|
||||
}
|
||||
@@ -248,16 +250,16 @@ public class PeopleController : Controller
|
||||
}
|
||||
});
|
||||
|
||||
await PopulatePeopleCountryFilterViewDataAsync(sieveModel.Filters);
|
||||
var viewModel = await BuildPeopleListAsync(sieveModel);
|
||||
return PartialView("_PeopleList", viewModel);
|
||||
}
|
||||
|
||||
private async Task<PeoplePageViewModel> BuildPeopleListAsync(SieveModel sieveModel)
|
||||
private async Task<PagedList<PersonViewModel>> BuildPeopleListAsync(SieveModel sieveModel)
|
||||
{
|
||||
sieveModel.SetDefaultPagingAndSorting(pagingSettings.PageSize, "LastNameTranscription");
|
||||
var normalizedFilters = sieveModel.Filters?.Trim() ?? string.Empty;
|
||||
var nameFilter = SieveModelExtensions.ExtractFilterValue(normalizedFilters, "FullNameTranscription");
|
||||
var countryFilter = SieveModelExtensions.ExtractFilterValue(normalizedFilters, "CountryCode", "==");
|
||||
|
||||
var baseQuery = ctx.People
|
||||
.Select(p => new PersonViewModel
|
||||
@@ -308,12 +310,7 @@ public class PeopleController : Controller
|
||||
.Apply(sieveModel, baseQuery)
|
||||
.ToListAsync();
|
||||
|
||||
return new PeoplePageViewModel
|
||||
{
|
||||
People = new PagedList<PersonViewModel>(people, pagingInfo),
|
||||
CountryOptions = await GetCountryOptionsAsync(countryFilter),
|
||||
CountryFilter = countryFilter
|
||||
};
|
||||
return new PagedList<PersonViewModel>(people, pagingInfo);
|
||||
}
|
||||
|
||||
private async Task<List<SelectListItem>> GetCountryOptionsAsync(string? selectedCode = null)
|
||||
@@ -329,4 +326,11 @@ public class PeopleController : Controller
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
private async Task PopulatePeopleCountryFilterViewDataAsync(string? filters)
|
||||
{
|
||||
var countryFilter = SieveModelExtensions.ExtractFilterValue(filters?.Trim() ?? string.Empty, "CountryCode", "==");
|
||||
ViewData[Constants.ViewDataKeys.PeopleCountryOptions] = await GetCountryOptionsAsync(countryFilter);
|
||||
ViewData[Constants.ViewDataKeys.PeopleCountryFilter] = countryFilter;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user