public async Task <IActionResult> AddExpense(MonthlyBudgetBoardDetail request)
        {
            try
            {
                // TODO: Add insert logic here

                var expense = new Expense
                {
                    ExpenseName   = request.ExpenseModel.ExpenseName,
                    ExpenseAmount = request.ExpenseModel.ExpenseAmount,
                    ExpenseDate   = request.ExpenseModel.ExpenseDate,
                    ExpenseTypeId = request.ExpenseModel.ExpenseTypeId
                };

                var expenseId = await _monthlyBudgetService.AddExpenseToMonthlyBudgetBoard(expense);

                var result = await _monthlyBudgetService.BoardExpenseTransaction(request.MonthlyBudgetBoardId, expenseId);

                return(RedirectToAction("Details", new { id = request.MonthlyBudgetBoardId }));
            }
            catch (Exception e)
            {
                ModelState.AddModelError("", e.Message);
                return(View(request));
            }
        }
Esempio n. 2
0
        public async Task <MonthlyBudgetBoardDetail> GetMonthlyBudgetBoardById(int id)
        {
            //Get Budget Board Entity Data
            var board = await _midasContext.MonthlyBudgetBoard.FirstOrDefaultAsync(mb => mb.MonthlyBudgetId == id);

            //Query the Transaction table to see what Monthly Expenses are associated with a Budget Board
            var budgetExpenses = await _midasContext.MonthlyBudgetExpense.Where(be => be.MonthlyBudgetBoardId == id).ToArrayAsync();

            //New list to store monthly expense data for mapping to the DTO
            var expenses = new List <ExpenseListItem>();

            foreach (MonthlyBudgetExpense entity in budgetExpenses)
            {
                //Query the Expense Table to get table data
                var expense     = _midasContext.Expense.FirstOrDefault(e => e.ExpenseId == entity.ExpenseId);
                var expenseType = _midasContext.ExpenseType.FirstOrDefault(e => e.ExpenseTypeId == expense.ExpenseTypeId);

                var newExpense = new ExpenseListItem
                {
                    ExpenseId       = expense.ExpenseId,
                    ExpenseName     = expense.ExpenseName,
                    ExpenseAmount   = expense.ExpenseAmount,
                    ExpenseTypeId   = expense.ExpenseTypeId,
                    ExpenseTypeName = expenseType.ExpenseTypeName,
                    ExpenseDate     = expense.ExpenseDate
                };

                expenses.Add(newExpense);
            }

            var dto = new MonthlyBudgetBoardDetail
            {
                MonthlyBudgetBoardId   = board.MonthlyBudgetId,
                BudgetBoardId          = board.BudgetBoardId,
                MonthlyBudgetBoardName = board.MonthlyBudgetName,
                ExpenseList            = expenses
            };

            return(dto);
        }