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)); }
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)))); }