Esempio n. 1
0
 public async Task UpdateExpense(int id, UpdateExpenseRequest request)
 {
     await _expensesRepository.UpdateExpense(
         id,
         request.Description,
         request.Amount,
         request.ExpenseCategoryId,
         request.ExpenseSubcategoryId,
         request.AccountId,
         request.CreateDate);
 }
Esempio n. 2
0
        public async Task <bool> UpdateExpenseAsync(int expenseId, UpdateExpenseRequest request)
        {
            var expenseDto = new UpdateExpenseDto
            {
                Id           = expenseId,
                Name         = request.Name,
                Description  = request.Description,
                ExpenseDate  = request.ExpenseDate,
                ExpenseValue = request.ExpenseValue,
                CurrencyId   = request.CurrencyId,
                PeriodId     = request.PeriodId
            };

            var expense = _mapper.Map <Expense>(expenseDto);

            return(await _baseRepository.UpdateEntityAsync(expense));
        }
Esempio n. 3
0
        public async Task <IActionResult> UpdateExpense(int expenseId, [FromBody] UpdateExpenseRequest request)
        {
            var userId = User.Claims.FirstOrDefault(c => c.Type == "id").Value;

            // check if user exists
            var userExists = await _identityService.CheckIfUserExists(userId);

            if (!userExists)
            {
                return(NotFound(new ErrorResponse(new ErrorModel {
                    Message = $"There is no user with id: {userId}"
                })));
            }

            var expenseInDb = await _expenseService.GetExpenseAsync(expenseId);

            if (expenseInDb == null)
            {
                return(NotFound(new ErrorResponse(new ErrorModel {
                    Message = $"There is no expense with id: {expenseId}"
                })));
            }

            if (expenseInDb.UserId != userId)
            {
                return(Forbid());
            }

            var updateExpense = await _expenseService.UpdateExpenseAsync(expenseId, request);

            if (!updateExpense)
            {
                return(BadRequest(new ErrorResponse(new ErrorModel {
                    Message = $"Could not update expense with id:{expenseId}"
                })));
            }

            var updatedExpense = await _expenseService.GetExpenseAsync(expenseId);

            return(Ok(new Response <ExpenseResponse>(_mapper.Map <ExpenseResponse>(updatedExpense))));
        }
        public async Task <IActionResult> UpdateExpense(UpdateExpenseRequest expenseRequest)
        {
            if (expenseRequest == null)
            {
                return(StatusCode(400, "Bad Request"));
            }

            try
            {
                await _expenseServices.UpdateExpense((long)expenseRequest.ExpenseId, (decimal)expenseRequest.ExpenseAmount);

                return(Ok());
            }
            catch (ArgumentException ae)
            {
                return(StatusCode(400, ae.Message));
            }
            catch (Exception e)
            {
                return(StatusCode(500, e.Message));
            }
        }
Esempio n. 5
0
        public async Task <IActionResult> Update([FromRoute] Guid expenseId, [FromBody] UpdateExpenseRequest request)
        {
            var userOwnsExpenses = await _expenseService.UserOwnsExpenseAsync(expenseId, HttpContext.GetUserId());

            if (!userOwnsExpenses)
            {
                return(BadRequest(new ErrorResponse()
                {
                    Errors = new List <ErrorModel>
                    {
                        new ErrorModel
                        {
                            FieldName = "userId",
                            Message = "User does not own this expense"
                        }
                    }
                }));
            }

            var expense = await _expenseService.GetExpenseByIdAsync(expenseId);

            expense.Title     = request.Title;
            expense.Value     = request.Value;
            expense.DateAdded = DateTime.Now;
            expense.Tags      = request.Tags.Select(x => new ExpenseTag {
                ExpenseId = expenseId, TagName = x
            })
                                .ToList();

            var updated = await _expenseService.UpdateExpenseAsync(expense);

            if (updated)
            {
                return(Ok(new Response <ExpenseResponse>(_mapper.Map <ExpenseResponse>(expense))));
            }

            return(NotFound());
        }
        protected async Task <HttpResponseMessage> UpdateExpenseAsync(Guid expenseId, UpdateExpenseRequest request)
        {
            var t = ApiRoutes.Expenses.Update.Replace("{expenseId}", expenseId.ToString());

            return(await TestClient.PutAsJsonAsync(ApiRoutes.Expenses.Update.Replace("{expenseId}", expenseId.ToString()), request));
        }
        public async Task <IActionResult> UpdateExpenseCategory(int id, [FromBody] UpdateExpenseRequest request)
        {
            await _expensesService.UpdateExpense(id, request);

            return(Ok());
        }