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)); }
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()); }