Exemplo n.º 1
0
        private Customer(RegisteredCustomer registeredCustomer, IPaymentMethodFactory paymentMethodFactory)
        {
            _registeredCustomer   = registeredCustomer;
            _paymentMethodFactory = paymentMethodFactory;

            Basket         = Basket.Empty;
            PaymentMethods = ImmutableDictionary <string, IPaymentMethod> .Empty;
        }
Exemplo n.º 2
0
 public PayExPaymentGateway()
 {
     _paymentMethodFactory = ServiceLocator.Current.GetInstance <IPaymentMethodFactory>();
 }
 public AddPaymentMethodCommandHandler(IPaymentMethodFactory paymentMethodFactory, IPaymentMethodRepository paymentMethodRepository)
 {
     this.paymentMethodFactory    = paymentMethodFactory;
     this.paymentMethodRepository = paymentMethodRepository;
 }
 public PayExPaymentGateway()
 {
     _paymentMethodFactory = ServiceLocator.Current.GetInstance<IPaymentMethodFactory>();
 }
Exemplo n.º 5
0
 private Customer(RegisteredCustomer registeredCustomer, Basket basket,
                  ImmutableDictionary <string, IPaymentMethod> paymentMethods, IPaymentMethodFactory paymentMethodFactory)
     : this(registeredCustomer, paymentMethodFactory)
 {
     Basket         = basket;
     PaymentMethods = paymentMethods;
 }
Exemplo n.º 6
0
        private static Customer Load(AccountName accountName, Func <AccountName, IEnumerable <IEvent> > eventSource, IPaymentMethodFactory paymentMethodFactory)
        {
            IEnumerable <dynamic> events = eventSource(accountName);


            if (!events.Any())
            {
                return(None);
            }

            var customer = new Customer(RegisteredCustomer.None, paymentMethodFactory);

            return(events.Aggregate(customer, (c, e) => c.Apply(e)));
        }
Exemplo n.º 7
0
 public static Func <AccountName, Customer> BuildLoadCustomer(Func <AccountName, IEnumerable <IEvent> > eventSource,
                                                              IPaymentMethodFactory paymentMethodFactory)
 {
     return(accountName => Load(accountName, eventSource, paymentMethodFactory));
 }