Exemple #1
0
        public OrderSummaryPaymentViewModel BuildOrderSummaryPaymentViewModel(Payment payment, CultureInfo cultureInfo)
        {
            var paymentVm = new OrderSummaryPaymentViewModel
            {
                FirstName = payment.BillingAddress.FirstName,
                LastName  = payment.BillingAddress.LastName
            };

            paymentVm.BillingAddress = new AddressViewModel();
            paymentVm.Amount         = payment.Amount.ToString();

            return(paymentVm);
        }
Exemple #2
0
        public virtual OrderSummaryPaymentViewModel BuildOrderSummaryPaymentViewModel(Overture.ServiceModel.Orders.Payment payment, CultureInfo cultureInfo)
        {
            var methodDisplayNames = LookupService.GetLookupDisplayNamesAsync(new GetLookupDisplayNamesParam
            {
                CultureInfo = cultureInfo,
                LookupType  = LookupType.Order,
                LookupName  = "PaymentMethodType",
            }).Result;

            var paymentMethodDisplayName = methodDisplayNames.FirstOrDefault(x => x.Key == payment.PaymentMethod.Type.ToString()).Value;

            var paymentVm = new OrderSummaryPaymentViewModel
            {
                FirstName         = payment.BillingAddress == null ? null: payment.BillingAddress.FirstName,
                LastName          = payment.BillingAddress == null? null : payment.BillingAddress.LastName,
                PaymentMethodName = paymentMethodDisplayName,
            };

            paymentVm.BillingAddress = CartViewModelFactory.GetAddressViewModel(payment.BillingAddress, cultureInfo);
            paymentVm.Amount         = LocalizationProvider.FormatPrice((decimal)payment.Amount, cultureInfo);

            return(paymentVm);
        }
        protected virtual List <OrderSummaryPaymentViewModel> GetPaymentViewModels(CreateOrderDetailViewModelParam param)
        {
            var paymentVMs    = new List <OrderSummaryPaymentViewModel>();
            var validPayments = param.Order.Cart.Payments.Where(x => !x.IsVoided()).ToList();
            var payments      = validPayments.Any() ? validPayments : param.Order.Cart.Payments.ToList();

            foreach (var payment in payments)
            {
                OrderSummaryPaymentViewModel model;
                try
                {
                    var paymentProvider = PaymentProviderFactory.ResolveProvider(payment.PaymentMethod.PaymentProviderName);
                    model = paymentProvider.BuildOrderSummaryPaymentViewModel(payment, param.CultureInfo);
                }
                catch (ArgumentException)
                {
                    model = new OrderSummaryPaymentViewModel();
                }

                paymentVMs.Add(model);
            }

            return(paymentVMs);
        }
        public virtual OrderSummaryPaymentViewModel BuildOrderSummaryPaymentViewModel(Overture.ServiceModel.Orders.Payment payment, CultureInfo cultureInfo)
        {
            var creditCartNumber  = string.Empty;
            var expiryDate        = string.Empty;
            var paymentMethodName = string.Empty;

            if (payment.PaymentMethod.PropertyBag != null)
            {
                //TODO : use viewmodelmapper through cartviewmodelfactory ( already exist )
                if (payment.PaymentMethod.Type == PaymentMethodType.SavedCreditCard)
                {
                    if (payment.PaymentMethod.PropertyBag.ContainsKey(SavedCardMask))
                    {
                        creditCartNumber = payment.PaymentMethod.PropertyBag[SavedCardMask].ToString();
                    }

                    if (payment.PaymentMethod.PropertyBag.ContainsKey(SavedExpiryDate))
                    {
                        expiryDate = payment.PaymentMethod.PropertyBag[SavedExpiryDate].ToString();
                    }

                    if (payment.PaymentMethod.PropertyBag.ContainsKey(SavedCardType))
                    {
                        paymentMethodName = payment.PaymentMethod.PropertyBag[SavedCardType].ToString();
                    }
                }
                else
                {
                    if (payment.PaymentMethod.PropertyBag.ContainsKey(CreditCardPaymentProperties.CreditCardNumberLastDigitsKey))
                    {
                        creditCartNumber = payment.PaymentMethod.PropertyBag[CreditCardPaymentProperties.CreditCardNumberLastDigitsKey].ToString();
                    }

                    if (payment.PaymentMethod.PropertyBag.ContainsKey(CreditCardPaymentProperties.CreditCardExpiryDateKey))
                    {
                        expiryDate = payment.PaymentMethod.PropertyBag[CreditCardPaymentProperties.CreditCardExpiryDateKey].ToString();
                    }

                    if (payment.PaymentMethod.PropertyBag.ContainsKey(CreditCardPaymentProperties.CreditCardBrandKey))
                    {
                        paymentMethodName = payment.PaymentMethod.PropertyBag[CreditCardPaymentProperties.CreditCardBrandKey].ToString();
                    }
                }
            }

            DateTime expirationDate;
            bool     hasExpired = false;

            if (DateTime.TryParse(expiryDate, out expirationDate))
            {
                hasExpired = expirationDate < DateTime.UtcNow;
            }

            var paymentVm = new OrderSummaryPaymentViewModel
            {
                FirstName         = payment.BillingAddress.FirstName,
                LastName          = payment.BillingAddress.LastName,
                PaymentMethodName = paymentMethodName,
                CreditCardNumber  = creditCartNumber,
                ExpiryDate        = expiryDate,
                IsExpired         = hasExpired
            };

            paymentVm.BillingAddress = CartViewModelFactory.GetAddressViewModel(payment.BillingAddress, cultureInfo);
            paymentVm.Amount         = LocalizationProvider.FormatPrice((decimal)payment.Amount, cultureInfo);

            return(paymentVm);
        }