public async Task ProcessCryptoFailed(CryptoPaymentInfo cryptoPaymentInfo)
        {
            var client = new HttpClient();
            var result = await client.PostAsJsonAsync($"{_configuration["Service:CryptoPayment:VerifyApiValidationToken"]}", cryptoPaymentInfo);

            if (result.IsSuccessStatusCode)
            {
            }
        }
        public async Task ProcessCryptoAdSuccess(CryptoPaymentInfo cryptoPaymentInfo)
        {
            var client = new HttpClient();
            var result = await client.PostAsJsonAsync($"{_configuration["Service:CryptoPayment:VerifyApiValidationToken"]}", cryptoPaymentInfo);

            if (result.IsSuccessStatusCode)
            {
                var payment = await _functionalUnitOfWork.PaymentRepository.FirstOrDefault(a => a.OrderNumber == cryptoPaymentInfo.OrderNumber);

                payment.IsValidated   = true;
                payment.ValidatedDate = DateTime.Now;
                payment.OrderNumber   = cryptoPaymentInfo.OrderNumber;
                payment.TokenId       = cryptoPaymentInfo.Token;
            }
        }
        public async Task ProcessCryptoSubSuccess(CryptoPaymentInfo cryptoPaymentInfo)
        {
            var client = new HttpClient();
            var result = await client.PostAsJsonAsync($"{_configuration["Service:CryptoPayment:VerifyApiValidationToken"]}", cryptoPaymentInfo);

            if (result.IsSuccessStatusCode)
            {
                var payment = await _functionalUnitOfWork.PaymentRepository.FirstOrDefault(a => a.OrderNumber == cryptoPaymentInfo.OrderNumber);

                var subscription = await _functionalUnitOfWork.SubscriptionPackRepository.FirstOrDefault(x => x.Id == payment.SubscriptionId.Value);

                payment.IsValidated   = true;
                payment.ValidatedDate = DateTime.Now;
                payment.OrderNumber   = cryptoPaymentInfo.OrderNumber;
                payment.TokenId       = cryptoPaymentInfo.Token;

                SubscriptionHistory subHisto = new SubscriptionHistory();
                subHisto.Created            = DateTime.Now;
                subHisto.EndSubscription    = DateTime.Now.AddMonths(subscription.Duration);
                subHisto.Enable             = true;
                subHisto.UserId             = Guid.Parse(payment.UserId);
                subHisto.SubscriptionPackId = payment.SubscriptionId.Value;
                await _functionalUnitOfWork.SubscriptionHistoryRepository.Add(subHisto);

                var user = await _userManager.FindByIdAsync(payment.UserId);

                user.SubscriptionStartDate = user.SubscriptionStartDate.HasValue ? user.SubscriptionStartDate : subHisto.Created;
                if (user.SubscriptionEndDate.HasValue)
                {
                    if (user.SubscriptionEndDate.Value < DateTime.Now)
                    {
                        user.SubscriptionEndDate = DateTime.Now.AddMonths(subscription.Duration);
                    }
                    else
                    {
                        user.SubscriptionEndDate = user.SubscriptionEndDate.Value.AddMonths(subscription.Duration);
                    }
                }
                else
                {
                    user.SubscriptionEndDate = subHisto.EndSubscription;
                }

                await _userManager.UpdateAsync(user);
            }
        }