public async Task<Transaction> AuthorizePayment(PaymentInfo payment)
        {
            var planetPaySvc = new PlanetPayService(_paymentConfig.DefaultApiKey,
                _paymentConfig.DefaultEncryptionKey);

            var cardHashGen = new CardHash(planetPaySvc)
            {
                CardNumber = payment.CreditCard.CardNumber,
                CardHolderName = payment.CreditCard.CardHolder,
                CardExpirationDate = payment.CreditCard.CardExpiration,
                CardCvv = payment.CreditCard.CardCvv
            };
            var cardHash = cardHashGen.Generate();

            var dealTransaction = new DealTransaction(planetPaySvc)
            {
                CardHash = cardHash,
                CardNumber = payment.CreditCard.CardNumber,
                CardHolderName = payment.CreditCard.CardHolder,
                CardExpirationDate = payment.CreditCard.CardExpiration,
                CardCvv = payment.CreditCard.CardCvv,
                PaymentMethod = PaymentMethod.CreditCard,
                Amount = payment.TotalValue
            };

            return ConvertToTransaction(await dealTransaction.AuthorizeCardTransaction());
        }
 public static Transaction ConvertToTransaction(DealTransaction dealTransaction)
 {
     return new Transaction
     {
         PaymentId = Guid.NewGuid(),
         Status = (StatusTransaction)dealTransaction.Status,
         TotalValue = dealTransaction.Amount,
         FlagCard = dealTransaction.CardBrand,
         AuthorizationCode = dealTransaction.AuthorizationCode,
         CostTransaction = dealTransaction.Cost,
         DateTransaction = dealTransaction.TransactionDate,
         NSU = dealTransaction.Nsu,
         TID = dealTransaction.Tid
     };
 }