public async Task <long> CalcBusinessDaysAsync(DateTime startDate, DateTime endDate) { var holidays = await _holidayRepository.ListAsync(); // var workingDays = DayUtility.CalcWorkingDaysBetween(startDate, endDate); var workingDays = DayUtility.CalcWorkingDaysBetweenLinear(startDate, endDate); for (var year = startDate.Year; year <= endDate.Year; year++) { workingDays = holidays.Aggregate(workingDays, (current, holiday) => current - DayUtility.HolidayOverlapsWorkingDay(holiday, startDate, endDate, year)); } return(workingDays); }