コード例 #1
0
        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"));
            }
        }
コード例 #2
0
        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"));
            }
        }