public async Task <ReportDTO> GetSummary(int year, int month) { var result = new ReportDTO("Sales Report Summary", ""); var previousYear = (year - 1).ToString(); var yearStr = year.ToString(); var monthStr = month.ToString().PadLeft(2, '0'); var target = await targetRepository .GetAsync(w => (w.Year == yearStr || w.Year == previousYear) && w.Month == monthStr); var actual = await transactionRepository .GetAsync(w => (w.yearv == yearStr || w.yearv == previousYear) && w.monthv == monthStr); //var products = await productRepository.GetAsync(); var qResult = from t in target join a in actual on new { t.Year, t.Month } equals new { Year = a.yearv, Month = a.monthv } into at select new { t.Year, t.Month, Sum = at.Sum(s => s.Amount) }; result.Data = qResult; return(result); }