public async Task <bool> UpdateDebtPaymentAsync(int debtPaymentId, UpdateDebtPaymentRequest request)
        {
            var currentDebtPayment = await _baseRepository.GetEntityAsync(debtPaymentId);

            currentDebtPayment.UpdatedAt        = DateTime.UtcNow;
            currentDebtPayment.Description      = request.Description;
            currentDebtPayment.DebtPaymentValue = request.DebtPaymentValue;
            currentDebtPayment.CurrencyId       = request.CurrencyId;
            currentDebtPayment.PeriodId         = request.PeriodId;

            return(await _baseRepository.UpdateEntityAsync(currentDebtPayment));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> UpdateDebtPayment([FromRoute] int debtId, int debtPaymentId, [FromBody] UpdateDebtPaymentRequest 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 debt = await _debtService.GetDebtAsync(debtId);

            if (debt == null)
            {
                return(NotFound(new ErrorResponse(new ErrorModel {
                    Message = $"There is no budget with id: {debtId}"
                })));
            }

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

            var debtPaymentInDb = await _debtPaymentService.GetDebtPaymentAsync(debtPaymentId);

            if (debtPaymentInDb == null)
            {
                return(NotFound(new ErrorResponse(new ErrorModel {
                    Message = $"There is no debtPayment with id: {debtPaymentId} for debt id: {debtId}"
                })));
            }

            var updateDebt = await _debtPaymentService.UpdateDebtPaymentAsync(debtPaymentId, request);

            if (!updateDebt)
            {
                return(BadRequest(new ErrorResponse(new ErrorModel {
                    Message = $"Could not update debt payment with id:{debtPaymentId}"
                })));
            }

            var updatedDebtPayment = await _debtPaymentService.GetDebtPaymentAsync(debtPaymentId);

            return(Ok(new Response <DebtPaymentResponse>(_mapper.Map <DebtPaymentResponse>(updatedDebtPayment))));
        }