public async Task <IEnumerable <BudgetDay> > Handle(GetBudgetCalendarByDateQuery request, CancellationToken cancellationToken) { if (isDateProvidedValid(request.Month)) { return(null); } request.Month++; // TODO getting the list of expenses and incomes for that month in that year var expensesListForMonth = _dbContext.Expenses .FromSqlRaw("SELECT * " + "FROM dbo.expense EX where " + "MONTH(EX.DATE) = {0} AND YEAR(EX.DATE) = {1} " + "AND EX.user_id = {2}", request.Month, request.Year, request.UserId ); var incomeListForMonth = _dbContext.Incomes .FromSqlRaw("SELECT * " + "FROM dbo.income INC where " + "MONTH(INC.DATE) = {0} AND YEAR(INC.DATE) = {1} " + "AND INC.user_id = {2}", request.Month, request.Year, request.UserId ); var budgetForMonth = GetBudgetDateArray( request.Month, request.Year, expensesListForMonth.ToList().AsReadOnly(), incomeListForMonth.ToList().AsReadOnly() ); return(budgetForMonth); }
public async Task <IActionResult> Get(int month, int year, string userId) { var request = new GetBudgetCalendarByDateQuery(month, year, userId); var budgetCalendarList = await _mediator.Send(request); if (budgetCalendarList == null) { return(BadRequest("Not found")); } return(Ok(budgetCalendarList)); }