Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }