Example #1
0
        public async Task <IActionResult> Pay(string id)
        {
            var userId = this.userManager.GetUserId(this.User);

            var payment = await this.paymentService.GetPaymentDetailsAsync(id, userId);

            if (payment.RecipientHasStripeAccount == false && this.User.IsInRole(OwnerRoleName))
            {
                return(this.RedirectToAction("Index", "Dashboard", new { area = ManagementArea })
                       .WithWarning(string.Empty, string.Format(ManagerHasNotStripeAccount, payment.To)));
            }

            var viewModel = new CheckoutPaymentViewModel
            {
                Id   = payment.Id,
                Date = payment.Date,
                To   = payment.To,
                ToStripeAccountId = payment.ToStripeAccountId,
                Reason            = payment.Reason,
                Amount            = payment.Amount,
                Status            = payment.Status,
                Address           = payment.Address,
            };

            return(this.View(viewModel));
        }
Example #2
0
        public async Task <IActionResult> Success(string sessionId)
        {
            var  userId  = this.userManager.GetUserId(this.User);
            bool compare = await this.paymentCommonService.CompareData(sessionId);

            if (string.IsNullOrWhiteSpace(sessionId) || compare == false)
            {
                return(this.RedirectToAction(nameof(ProfileController.Index), "Home", new { area = string.Empty })
                       .WithWarning(string.Empty, NiceTry));
            }

            var paymentId = await this.paymentCommonService.GetPaymentId(sessionId);

            var model = await this.paymentCommonService.GetPaymentDetailsAsync(paymentId, userId);

            var viewModel = new CheckoutPaymentViewModel
            {
                Reason          = model.Reason,
                Amount          = model.Amount,
                To              = model.To,
                Address         = model.Address,
                TransactionDate = model.TransactionDate?.ToString(DateFormatWithTime),
            };

            return(this.View(viewModel));
        }
Example #3
0
        public virtual ActionResult CheckoutPayment()
        {
            var checkoutPaymentViewModel = new CheckoutPaymentViewModel
            {
                IsLoading = true
            };

            var getPaymentProvidersParam = new GetPaymentProvidersParam
            {
                Scope       = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo
            };

            checkoutPaymentViewModel.Context.Add("PaymentProviders", PaymentViewService.GetPaymentProvidersAsync(getPaymentProvidersParam).Result.ToList());

            return(View("CheckoutPaymentContainer", checkoutPaymentViewModel));
        }
Example #4
0
        protected virtual async Task <CheckoutPaymentViewModel> MapCheckoutPaymentViewModel(Overture.ServiceModel.Orders.Cart cart, List <IPaymentMethodViewModel> paymentMethodViewModels, CultureInfo cultureInfo, bool isAuthenticated)
        {
            var payment = GetActivePayment(cart);

            if (payment == null)
            {
                return(null);
            }

            var paymentId = payment.Id;

            ActivePaymentViewModel activePaymentVm = null;

            if (payment.PaymentMethod != null)
            {
                var provider = PaymentProviderFactory.ResolveProvider(payment.PaymentMethod.PaymentProviderName);

                activePaymentVm = GetActivePaymentViewModel(new GetActivePaymentViewModelParam
                {
                    Cart            = cart,
                    CultureInfo     = cultureInfo,
                    PaymentProvider = provider,
                    IsAuthenticated = isAuthenticated
                });

                var activePaymentMethodVm =
                    paymentMethodViewModels.FirstOrDefault(
                        pm =>
                        pm.Id == payment.PaymentMethod.Id &&
                        pm.PaymentProviderName == payment.PaymentMethod.PaymentProviderName &&
                        pm.IsValid);

                if (activePaymentMethodVm != null)
                {
                    activePaymentMethodVm.IsSelected = true;
                }

                // If active payment is set to soemthing that doesn't exists anymore
                // Select the first payment method available...
                if (activePaymentVm != null && activePaymentMethodVm == null)
                {
                    activePaymentVm = await UpdateActivePaymentMethodAsync(new UpdatePaymentMethodParam
                    {
                        CartName            = cart.Name,
                        CultureInfo         = cultureInfo,
                        CustomerId          = cart.CustomerId,
                        IsAuthenticated     = isAuthenticated,
                        Scope               = cart.ScopeId,
                        PaymentId           = activePaymentVm.Id,
                        PaymentMethodId     = paymentMethodViewModels.First().Id,
                        PaymentProviderName = paymentMethodViewModels.First().PaymentProviderName,
                    }).ConfigureAwait(false);

                    paymentId = activePaymentVm.Id;

                    paymentMethodViewModels.First().IsSelected = true;
                }
            }

            var vm = new CheckoutPaymentViewModel
            {
                PaymentId              = paymentId,
                PaymentMethods         = paymentMethodViewModels,
                ActivePaymentViewModel = activePaymentVm
            };

            return(vm);
        }