Esempio n. 1
0
        public async Task <ActionResult <MonthlyExpense> > PostMonthlyExpense(MonthlyExpenseInputModel monthlyExpenseInput)
        {
            var user = await _context.Users.FindAsync(GetUserId());

            var expenseToAdd = new MonthlyExpense
            {
                ExpiryDate            = monthlyExpenseInput.ExpiryDate,
                TriggeringDateOfMonth = monthlyExpenseInput.TriggeringDayOfMonth,
                ExpenseData           = new ExpenseData
                {
                    Amount      = monthlyExpenseInput.Amount,
                    Description = monthlyExpenseInput.Description
                },
                User = user
            };

            _context.MonthlyExpenses.Add(expenseToAdd);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetMonthlyExpense", new { id = expenseToAdd.Id }, expenseToAdd));
        }
Esempio n. 2
0
        public async Task <IActionResult> PutMonthlyExpense(int id, MonthlyExpenseInputModel monthlyExpenseInput)
        {
            var uid             = GetUserId();
            var expenseToModify = await this.UserMonthlyExpensesQueryBuilder(uid).Where(c => c.Id == id).FirstOrDefaultAsync();

            if (expenseToModify == null)
            {
                throw new Exception("You don't own any current expense with that id");
            }

            expenseToModify.ExpiryDate            = monthlyExpenseInput.ExpiryDate;
            expenseToModify.TriggeringDateOfMonth = monthlyExpenseInput.TriggeringDayOfMonth;
            expenseToModify.ExpenseData           = new ExpenseData
            {
                Amount      = monthlyExpenseInput.Amount,
                Description = monthlyExpenseInput.Description
            };

            _context.Entry(expenseToModify).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MonthlyExpenseExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }