diff --git a/EgwCoreLib.BlazorTest/Pages/FetchData.razor.cs b/EgwCoreLib.BlazorTest/Pages/FetchData.razor.cs index 0ee27d3..7464c91 100644 --- a/EgwCoreLib.BlazorTest/Pages/FetchData.razor.cs +++ b/EgwCoreLib.BlazorTest/Pages/FetchData.razor.cs @@ -15,6 +15,7 @@ namespace EgwCoreLib.BlazorTest.Pages protected override async Task OnInitializedAsync() { + rawData = await ForecastService.GetForecastAsync(DateTime.Now); PageSizeEnab = new List() { 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 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? forecasts; + private WeatherForecast[] rawData { get; set; } = new WeatherForecast[1]; private bool sortAsc = true; private string sortField = "";