Ejemplo n.º 1
0
        public async Task <DebtPayment> NewDebtPaymentAsync(DebtPaymentRequest request, int debtId, string userId)
        {
            var debtPaymentDto = new DebtPaymentDto
            {
                UserId           = userId,
                CreatedAt        = DateTime.UtcNow,
                PaymentDate      = request.PaymentDate,
                Description      = request.Description,
                DebtPaymentValue = request.DebtPaymentValue,
                CurrencyId       = request.CurrencyId,
                PeriodId         = request.PeriodId,
                DebtId           = debtId
            };

            var debtPayment = _mapper.Map <DebtPayment>(debtPaymentDto);

            return(await _baseRepository.CreateEntityAsync(debtPayment));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> CreateDebtPayment([FromRoute] int debtId, [FromBody] DebtPaymentRequest 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}"
                })));
            }

            // check if new debt budgetId is correct
            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());
            }

            // create debtPayment
            var newDebtPayment = await _debtPaymentService.NewDebtPaymentAsync(request, debtId, userId);

            if (newDebtPayment == null)
            {
                return(BadRequest(new ErrorResponse(new ErrorModel {
                    Message = "Could not create new debt payment"
                })));
            }

            var locationUri = _uriService.GetDebtPaymentUri(debtId, newDebtPayment.Id);

            return(Created(locationUri, new Response <DebtPaymentResponse>(_mapper.Map <DebtPaymentResponse>(newDebtPayment))));
        }