public IResponse Visit(CreateCreditCardRequest request)
 {
     return(_restWrapper.Post <CreateCreditCardRequestBody, CreditCard>(request.Body,
                                                                        uri: GetEndpoint(request),
                                                                        accessTokenHeader: GetHeaderToken(request),
                                                                        actions: GetCustomResponseHandlers(request)));
 }
        internal static CreateCreditCardRequest BuildCreateCreditCardRequest()
        {
            var request = new CreateCreditCardRequest()
            {
                Number         = "4556604245849434",
                HolderName     = "VITOR DE ANDRADE",
                Cvv            = "123",
                ExpMonth       = 12,
                ExpYear        = 21,
                Brand          = "Visa",
                BillingAddress = new CreateAddressRequest()
                {
                    City         = "City",
                    Complement   = "Complement",
                    Country      = "BR",
                    Neighborhood = "Neighborhood",
                    Number       = "123",
                    State        = "RJ",
                    Street       = "Street",
                    ZipCode      = "22221010"
                }
            };

            return(request);
        }
        public CreditCard CreateCreditCard(string accessToken, string encryptedNumber, string encryptedExpirationMonth,
                                           string encryptedExpirationYear, string encryptedCvv, string postalCode)
        {
            CreateCreditCardRequest request = new CreateCreditCardRequest(accessToken, encryptedNumber,
                                                                          encryptedExpirationMonth, encryptedExpirationYear, encryptedCvv, postalCode);

            return(request.Accept(_engine) as CreditCard);
        }
Beispiel #4
0
        public CreditCard CreateCreditCard(string accessToken, string encryptedNumber, string encryptedExpirationMonth,
                                           string encryptedExpirationYear, string encryptedCvv, string postalCode)
        {
            CreateCreditCardRequest request = new CreateCreditCardRequest(accessToken, encryptedNumber,
                                                                          encryptedExpirationMonth, encryptedExpirationYear, encryptedCvv, postalCode);

            return(_restWrapper.Post <CreateCreditCardRequestBody, CreditCard>(
                       request.Body,
                       uri: BuildUri(request.ApiVersion, "credit_cards"),
                       accessTokenHeader: FormatAccessTokenString(unspecifiedUserAccessToken: request.AccessToken),
                       actions: null));
        }
        private CreditCard CreateCreditCard(CreateCreditCardRequest request)
        {
            if (request != null)
            {
                return(new CreditCard()
                {
                    CreditCardNo = request.CreditCardNo,
                    PIN = request.PIN,
                    ExpirationDate = request.ExpirationDate,
                    BankAccountId = request.BankAccountId,
                    CreatedBy = _httpContextAccessor.HttpContext.User.Identity.Name
                });
            }

            return(null);
        }
        /// <summary>
        /// Add or Edit an existing credit card
        /// </summary>
        /// <param name="creditCardId"></param>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <Response> AddOrEditCreditCardAsync(int creditCardId, CreateCreditCardRequest request, CancellationToken cancellationToken = default)
        {
            var responseModel = new Response();

            if (creditCardId != 0)
            {
                var creditCard = await _creditCardsRepo.FindByIdAsync(creditCardId);

                try
                {
                    if (creditCard != null)
                    {
                        creditCard.CreditCardNo   = request.CreditCardNo;
                        creditCard.ExpirationDate = request.ExpirationDate;
                        creditCard.BankAccountId  = request.BankAccountId;
                        creditCard.LastModifiedBy = _httpContextAccessor.HttpContext.User.Identity.Name;
                        creditCard.LastModifiedOn = DateTime.UtcNow;

                        await _creditCardsRepo.UpdateAsync(creditCard);
                    }
                    else
                    {
                        responseModel.AddError(ExceptionCreator.CreateNotFoundError(nameof(creditCard), $"credit card of id: {creditCardId} not found"));
                        return(responseModel);
                    }
                }
                catch (Exception ex)
                {
                    responseModel.AddError(ExceptionCreator.CreateInternalServerError(ex.ToString()));
                }
            }
            else
            {
                try
                {
                    await _creditCardsRepo.AddAsync(CreateCreditCard(request));
                }
                catch (Exception ex)
                {
                    responseModel.AddError(ExceptionCreator.CreateInternalServerError(ex.ToString()));
                }
            }

            return(responseModel);
        }
Beispiel #7
0
 public virtual T Visit(CreateCreditCardRequest request)
 {
     return(DEFAULT_FUNC(request));
 }
 public string Visit(CreateCreditCardRequest request)
 {
     return(BuildUri(request.ApiVersion, "credit_cards"));
 }
        public async Task <IActionResult> AddOrEditCreditCard([FromRoute] int creditCardId, [FromBody] CreateCreditCardRequest request,
                                                              CancellationToken cancellationToken = default)
        {
            var apiResponse = new Response();

            var user = await _userManager.GetUserAsync(User);

            var customer = await _customerService.GetCustomerByCreditCardIdsync(creditCardId, cancellationToken);


            if (customer == null)
            {
                apiResponse.AddError(ExceptionCreator.CreateNotFoundError(nameof(customer)));

                return(NotFound(apiResponse));
            }

            if (user.Id != customer?.Data?.UserId)
            {
                apiResponse.AddError(ExceptionCreator.CreateBadRequestError(nameof(user), "user is not authorized to complete this operation"));

                return(BadRequest(apiResponse));
            }

            try
            {
                apiResponse = await _creditCardsService.AddOrEditCreditCardAsync(creditCardId, request, cancellationToken);

                if (apiResponse.Success)
                {
                    return(Ok(apiResponse));
                }

                else if (apiResponse.Errors[0].Code == StatusCodes.Status404NotFound)
                {
                    return(NotFound(apiResponse));
                }


                return(BadRequest(apiResponse));
            }
            catch (Exception exception)
            {
                return(_actionResultMapper.Map(exception));
            }
        }