public void AugmentViewModel(ActivePaymentViewModel viewModel, Payment payment) { }
/// <summary> /// Augments the ViewModel with useful data. /// </summary> /// <param name="viewModel">The ViewModel to augment.</param> /// <param name="payment">The payment.</param> public virtual void AugmentViewModel(ActivePaymentViewModel viewModel, Overture.ServiceModel.Orders.Payment payment) { }
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); }
public void SetUp() { _container = new AutoMocker(); var repoMock = _container.GetMock <IPaymentRepository>(); repoMock.Setup(repo => repo.UpdatePaymentMethodAsync(It.IsNotNull <UpdatePaymentMethodParam>())) .Returns((UpdatePaymentMethodParam p) => { var cart = new ProcessedCart { Name = p.CartName, CultureName = p.CultureInfo.Name, ScopeId = p.Scope, CustomerId = p.CustomerId, Payments = new List <Payment> { new Payment { Id = p.PaymentId, PaymentMethod = new PaymentMethod { Id = p.PaymentMethodId, PaymentProviderName = p.PaymentProviderName, Type = GetRandom.Enumeration <PaymentMethodType>(), DisplayName = new LocalizedString { { p.CultureInfo.Name, GetRandom.String(12) } }, Enabled = true, Default = GetRandom.Boolean(), }, PaymentStatus = PaymentStatus.New } } }; return(Task.FromResult(cart)); }).Verifiable("The repository was not called to Update the payment method."); repoMock.Setup(repo => repo.InitializePaymentAsync(It.IsNotNull <InitializePaymentParam>())) .Returns((InitializePaymentParam p) => { var cart = new Overture.ServiceModel.Orders.Cart { Name = p.CartName, CultureName = p.CultureInfo.Name, ScopeId = p.Scope, CustomerId = p.CustomerId, Payments = new List <Payment> { new Payment { Id = p.PaymentId, PaymentMethod = new PaymentMethod { Id = p.PaymentId, PaymentProviderName = GetRandom.String(12), Type = GetRandom.Enumeration <PaymentMethodType>(), DisplayName = new LocalizedString { { p.CultureInfo.Name, GetRandom.String(12) } }, Enabled = true, Default = GetRandom.Boolean(), PropertyBag = new PropertyBag { //TODO: Change this to reflect real return from OV. { "HostedCardTokenizationUrl", string.Format("https://{0}/?id={1}&css={2}", GetRandom.WwwUrl(), GetRandom.String(16), GetRandom.String(255)) } } }, PaymentStatus = PaymentStatus.New } } }; return(Task.FromResult(cart)); }).Verifiable("The repository was not called to initialize the Payment."); var vmMapperMock = _container.GetMock <IViewModelMapper>(); vmMapperMock.Setup( vmm => vmm.MapTo <ActivePaymentViewModel>(It.IsNotNull <Payment>(), It.IsNotNull <CultureInfo>())) .Returns((Payment p, CultureInfo ci) => { var vm = new ActivePaymentViewModel { Id = p.Id, PaymentStatus = p.PaymentStatus }; return(vm); }).Verifiable("The ViewModelMapper has not been called to create an ActivePaymentViewModel."); }