/// <summary> /// /// </summary> /// <returns></returns> public List <DistrictExpendituresDto> GetAll() { //very tedious way of writing a sql pivot in C# var fiscalYears = FiscalYearRepository.GetYearsBetween(FiscalYearStart, FiscalYearEnd); var budgetsLookup = BudgetsRepository.GetYearsBetween(FiscalYearStart, FiscalYearEnd).ToDictionary(x => x.BudgetId); var districtExpenditures = new List <DistrictExpendituresDto>(); var allExpenditures = BudgetExpendituresRepository.GetAll(); foreach (var districtGroup in allExpenditures.GroupBy(x => budgetsLookup[x.BudgetId].DistrictId).OrderBy(x => x.Key)) { districtExpenditures.Add(GenerateYearlyDistrictExpenditures( districtGroup.Key, districtGroup.ToArray(), budgetsLookup, fiscalYears )); } return(districtExpenditures); }
public FiscalYearEntity[] GetSupportedYears() { SupportedYears = SupportedYears ?? FiscalYearRepository.GetYearsBetween(FiscalYearStart, FiscalYearEnd); return(SupportedYears); }