Minor changes

This commit is contained in:
Boris Milašinović
2026-04-29 15:21:17 +02:00
parent d06433e2f6
commit b849c6feb6
14 changed files with 90 additions and 81 deletions

View File

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