peformance verbesserungen
This commit is contained in:
@@ -358,20 +358,39 @@ else
|
||||
_userId = int.Parse(claim.Value);
|
||||
_monday = GetMonday(DateOnly.FromDateTime(DateTime.Today));
|
||||
_settings = await TrackerService.GetSettingsAsync(_userId);
|
||||
await LoadWeek();
|
||||
_totalOvertime = await TrackerService.GetTotalOvertimeAsync(_userId, _settings);
|
||||
|
||||
var loadWeekTask = LoadWeek();
|
||||
var overtimeTask = TrackerService.GetTotalOvertimeAsync(_userId, _settings);
|
||||
|
||||
await Task.WhenAll(loadWeekTask, overtimeTask);
|
||||
_totalOvertime = await overtimeTask;
|
||||
_loading = false;
|
||||
}
|
||||
|
||||
private async Task LoadWeek()
|
||||
{
|
||||
Task<List<PublicHoliday>> holidaysTask;
|
||||
if (_monday.Year != _holidayYear)
|
||||
{
|
||||
var list = await HolidayService.GetHolidaysAsync(_monday.Year, _settings.GermanState);
|
||||
holidaysTask = HolidayService.GetHolidaysAsync(_monday.Year, _settings.GermanState);
|
||||
}
|
||||
else
|
||||
{
|
||||
holidaysTask = Task.FromResult(new List<PublicHoliday>());
|
||||
}
|
||||
|
||||
var dbDaysTask = TrackerService.GetWeekAsync(_userId, _monday);
|
||||
|
||||
await Task.WhenAll(holidaysTask, dbDaysTask);
|
||||
|
||||
if (_monday.Year != _holidayYear)
|
||||
{
|
||||
var list = await holidaysTask;
|
||||
_holidays = list.ToDictionary(h => h.Date, h => h.Name);
|
||||
_holidayYear = _monday.Year;
|
||||
}
|
||||
var dbDays = await TrackerService.GetWeekAsync(_userId, _monday);
|
||||
|
||||
var dbDays = await dbDaysTask;
|
||||
_days = Enumerable.Range(0, 7).Select(i =>
|
||||
{
|
||||
var date = _monday.AddDays(i);
|
||||
|
||||
@@ -181,9 +181,15 @@ else
|
||||
|
||||
private async Task LoadMonth()
|
||||
{
|
||||
var workDays = await TrackerService.GetMonthAsync(_userId, _year, _month);
|
||||
var holidays = await HolidayService.GetHolidaysAsync(_year, _settings.GermanState);
|
||||
var vacations = await TrackerService.GetVacationDaysAsync(_userId, _year);
|
||||
var workDaysTask = TrackerService.GetMonthAsync(_userId, _year, _month);
|
||||
var holidaysTask = HolidayService.GetHolidaysAsync(_year, _settings.GermanState);
|
||||
var vacationsTask = TrackerService.GetVacationDaysAsync(_userId, _year);
|
||||
|
||||
await Task.WhenAll(workDaysTask, holidaysTask, vacationsTask);
|
||||
|
||||
var workDays = await workDaysTask;
|
||||
var holidays = await holidaysTask;
|
||||
var vacations = await vacationsTask;
|
||||
|
||||
var holidayMap = holidays.ToDictionary(h => h.Date, h => h.Name);
|
||||
var vacationSet = vacations.Select(v => v.Date).ToHashSet();
|
||||
|
||||
@@ -495,8 +495,12 @@ else
|
||||
if (claim == null) return;
|
||||
_userId = int.Parse(claim.Value);
|
||||
_settings = await TrackerService.GetSettingsAsync(_userId);
|
||||
await LoadVacations();
|
||||
_holHolidays = await HolidayService.GetHolidaysAsync(_holYear, _settings.GermanState);
|
||||
|
||||
var loadVacationsTask = LoadVacations();
|
||||
var loadHolidaysTask = HolidayService.GetHolidaysAsync(_holYear, _settings.GermanState);
|
||||
|
||||
await Task.WhenAll(loadVacationsTask, loadHolidaysTask);
|
||||
_holHolidays = await loadHolidaysTask;
|
||||
}
|
||||
|
||||
private async Task LoadVacations()
|
||||
|
||||
@@ -249,8 +249,13 @@ else
|
||||
|
||||
private async Task LoadYear()
|
||||
{
|
||||
var holidays = await HolidayService.GetHolidaysAsync(_year, _settings.GermanState);
|
||||
var vacations = await TrackerService.GetVacationDaysAsync(_userId, _year);
|
||||
var holidaysTask = HolidayService.GetHolidaysAsync(_year, _settings.GermanState);
|
||||
var vacationsTask = TrackerService.GetVacationDaysAsync(_userId, _year);
|
||||
|
||||
await Task.WhenAll(holidaysTask, vacationsTask);
|
||||
|
||||
var holidays = await holidaysTask;
|
||||
var vacations = await vacationsTask;
|
||||
_holidays = holidays.ToDictionary(h => h.Date, h => h.Name);
|
||||
_vacationSet = vacations.Select(v => v.Date).ToHashSet();
|
||||
_remainingDays = Math.Max(0, _settings.VacationDaysPerYear - vacations.Count);
|
||||
|
||||
Reference in New Issue
Block a user