public async Task <IActionResult> PutExpense([FromRoute] long id, [FromBody] ExpenseAddOrChangeRequest request) { if (!ModelState.IsValid || !TryValidateModel(request)) { return(BadRequest(ModelState.Values.SelectMany(m => m.Errors))); } var expense = _mapper.Map <Expense>(request); var currentExpense = await _repo.GetByIdWithoutTrackingAsync(id); if (currentExpense is null) { return(NotFound()); } if (currentExpense.OwnerId != getCurrentUserId()) { return(Unauthorized()); } expense.ExpenseId = id; var updateSucceed = await _repo.UpdateAsync(expense); if (!updateSucceed) { return(NotFound()); } return(Ok(request)); }
public async Task <IActionResult> PostExpense([FromBody] ExpenseAddOrChangeRequest request) { if (!ModelState.IsValid || !TryValidateModel(request)) { return(BadRequest(ModelState.Values.SelectMany(m => m.Errors))); } if (request.OwnerId != getCurrentUserId()) { return(Unauthorized()); } var expense = _mapper.Map <Expense>(request); await _repo.AddAsync(expense); return(CreatedAtAction("GetExpense", new { id = expense.ExpenseId }, request)); }