update demo con sorting

This commit is contained in:
Samuele Locatelli
2023-05-10 11:53:49 +02:00
parent 421e66f946
commit 89f201da26
+54 -2
View File
@@ -15,6 +15,7 @@ namespace EgwCoreLib.BlazorTest.Pages
protected override async Task OnInitializedAsync()
{
rawData = await ForecastService.GetForecastAsync(DateTime.Now);
PageSizeEnab = new List<int>()
{
4,8,12,16,20,24,28,32,36,40
@@ -24,9 +25,59 @@ namespace EgwCoreLib.BlazorTest.Pages
protected async Task ReloadAllData()
{
var rawData = await ForecastService.GetForecastAsync(DateTime.Now);
await Task.Delay(1);
totalCount = rawData.Count();
forecasts = rawData.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
List<WeatherForecast> currForecast = rawData.ToList();
// effetuo sort...
if (!string.IsNullOrEmpty(sortField))
{
switch (sortField)
{
case "TempC":
if (sortAsc)
{
currForecast = currForecast.OrderBy(x => x.TemperatureC).ToList();
}
else
{
currForecast = currForecast.OrderByDescending(x => x.TemperatureC).ToList();
}
break;
case "TempF":
if (sortAsc)
{
currForecast = currForecast.OrderBy(x => x.TemperatureF).ToList();
}
else
{
currForecast = currForecast.OrderByDescending(x => x.TemperatureF).ToList();
}
break;
case "Summary":
if (sortAsc)
{
currForecast = currForecast.OrderBy(x => x.Summary).ToList();
}
else
{
currForecast = currForecast.OrderByDescending(x => x.Summary).ToList();
}
break;
default:
case "Date":
if (sortAsc)
{
currForecast = currForecast.OrderBy(x => x.Date).ToList();
}
else
{
currForecast = currForecast.OrderByDescending(x => x.Date).ToList();
}
break;
}
}
forecasts = currForecast.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
}
protected async Task SetCurrPage(int newNum)
@@ -53,6 +104,7 @@ namespace EgwCoreLib.BlazorTest.Pages
#region Private Fields
private List<WeatherForecast>? forecasts;
private WeatherForecast[] rawData { get; set; } = new WeatherForecast[1];
private bool sortAsc = true;
private string sortField = "";