public IList <RunningTotal> RunningTotal(decimal initialTotal, DateTime start, DateTime end) { var basicTransactions = _basicTransactionService .Between(start, end) .Select(t => new RunningTotal(t)); var recurringTransactions = _recurringTransactionService .Between(start, end) .Select(t => new RunningTotal(t)); var basicIncomes = _basicIncomeService .Between(start, end) .Select(i => new RunningTotal(i)); var recurringIncomes = _recurringIncomeService .Between(start, end) .Select(i => new RunningTotal(i)); var runningTotals = basicTransactions .Concat(recurringTransactions) .Concat(basicIncomes) .Concat(recurringIncomes) .OrderBy(rt => rt.Date) .ToList(); foreach (var rt in runningTotals) { initialTotal = rt.AdjustTotal(initialTotal); } return(runningTotals); }
public IActionResult List([FromBody] DateRangeDto listParameters) { try { if (listParameters == null || !ModelState.IsValid) { return(BadRequest("Invalid State")); } var basic = _basicIncomeService.Between(listParameters.Start, listParameters.End); var recurring = _recurringIncomeService.Between(listParameters.Start, listParameters.End); return(Ok(new IncomeListDto { Incomes = basic .Concat(recurring) .OrderByDescending(i => i.Date) .Select(t => new IncomeDto(t)) .ToList() })); } catch (Exception) { return(BadRequest("Error while listing incomes")); } }