public async Task <IActionResult> CreateExpense([FromBody] CreateUpdateExpenseDetailDto expense) { try { if (expense == null) { _logger.LogError("Expense object sent from client is null."); return(BadRequest("Expense object is null")); } if (!ModelState.IsValid) { _logger.LogError("Invalid expense object sent from client."); return(BadRequest("Invalid model object")); } var expenseEntity = _mapper.Map <Expense>(expense); _repository.Expense.CreateExpense(expenseEntity); await _repository.SaveAsync(); var createdExpense = _mapper.Map <ExpenseWithDetailDto>(expenseEntity); return(CreatedAtRoute("ExpenseWithDetailsById", new { id = createdExpense.ExpenseId }, createdExpense)); } catch (Exception ex) { _logger.LogError($"Something went wrong inside CreateExpense action: {ex.Message}"); return(StatusCode(500, "Internal server error")); } }
public async Task <IActionResult> UpdateExpense(int id, [FromBody] CreateUpdateExpenseDetailDto expense) { try { if (expense == null) { _logger.LogError("Expense object sent from client is null."); return(BadRequest("Expense object is null")); } if (!ModelState.IsValid) { _logger.LogError("Invalid expense object sent from client."); return(BadRequest("Invalid model object")); } var expenseEntity = await _repository.Expense.GetExpenseWithDetailsAsync(id); if (expenseEntity == null) { _logger.LogError($"Expense with id: {id}, hasn't been found in db."); return(NotFound()); } _mapper.Map(expense, expenseEntity); _repository.Expense.UpdateExpense(expenseEntity); await _repository.SaveAsync(); return(NoContent()); } catch (Exception ex) { _logger.LogError($"Something went wrong inside UpdateExpense action: {ex.Message}"); return(StatusCode(500, "Internal server error")); } }