예제 #1
0
 public MiniShoppingCartModelMapper(
     SmartDbContext db,
     ICommonServices services,
     IProductService productService,
     IMediaService mediaService,
     ICurrencyService currencyService,
     IPriceCalculationService priceCalculationService,
     IOrderCalculationService orderCalculationService,
     IProductAttributeFormatter productAttributeFormatter,
     ICheckoutAttributeMaterializer checkoutAttributeMaterializer,
     ProductUrlHelper productUrlHelper,
     ShoppingCartSettings shoppingCartSettings,
     CatalogSettings catalogSettings,
     MediaSettings mediaSettings,
     OrderSettings orderSettings)
 {
     _db                            = db;
     _services                      = services;
     _productService                = productService;
     _priceCalculationService       = priceCalculationService;
     _mediaService                  = mediaService;
     _currencyService               = currencyService;
     _orderCalculationService       = orderCalculationService;
     _productAttributeFormatter     = productAttributeFormatter;
     _checkoutAttributeMaterializer = checkoutAttributeMaterializer;
     _productUrlHelper              = productUrlHelper;
     _shoppingCartSettings          = shoppingCartSettings;
     _catalogSettings               = catalogSettings;
     _mediaSettings                 = mediaSettings;
     _orderSettings                 = orderSettings;
 }
예제 #2
0
        /// <summary>
        /// Calculate payment method fee
        /// </summary>
        /// <param name="paymentMethod">Payment method</param>
        /// <param name="orderTotalCalculationService">Order total calculation service</param>
        /// <param name="cart">Shopping cart</param>
        /// <param name="fee">Fee value</param>
        /// <param name="usePercentage">Is fee amount specified as percentage or fixed value?</param>
        /// <returns>Result</returns>
        public static async Task <decimal> CalculateAdditionalFee(this IPaymentProvider paymentMethod,
                                                                  IOrderCalculationService orderTotalCalculationService, IList <ShoppingCartItem> cart,
                                                                  decimal fee, bool usePercentage)
        {
            if (paymentMethod == null)
            {
                throw new ArgumentNullException(nameof(paymentMethod));
            }
            if (fee <= 0)
            {
                return(fee);
            }

            decimal result;

            if (usePercentage)
            {
                //percentage
                var shoppingCartSubTotal = await orderTotalCalculationService.GetShoppingCartSubTotal(cart, true);

                result = (decimal)((((float)shoppingCartSubTotal.subTotalWithDiscount) * ((float)fee)) / 100f);
            }
            else
            {
                //fixed value
                result = fee;
            }
            return(result);
        }
예제 #3
0
        public void MyTestInitialize()
        {
            this.mockRepository = new MockRepository();

            this.productRepositoryStub  = mockRepository.Stub <IProductRepository>();
            this.calculationServiceStub = mockRepository.Stub <IOrderCalculationService>();

            this.customerStub         = MockRepository.GenerateStub <ICustomer>();
            this.customerStub.Name    = "CustomerName";
            this.customerStub.Address = "CustomerAddress";

            this.productStub             = MockRepository.GenerateStub <IProduct>();
            this.productStub.Name        = "ProductName";
            this.productStub.Description = "ProductDescription";
            this.productStub.Price       = 10;

            this.productRepositoryMock     = mockRepository.DynamicMock <IProductRepository>();
            this.orderRepositoryMock       = mockRepository.DynamicMock <IOrderRepository>();
            this.orderAmountCalculatorMock = mockRepository.DynamicMock <IOrderCalculationService>();
            this.confirmationServiceMock   = mockRepository.DynamicMock <IConfirmationService>();

            this.productSelectedByCustomer = "ProductName";
            this.quantity = 100;

            this.orderAmount = 1000;
        }
        public ShoppingCartService(
            SmartDbContext db,
            IWorkContext workContext,
            IStoreContext storeContext,
            IRequestCache requestCache,
            IEventPublisher eventPublisher,
            ICurrencyService currencyService,
            IShoppingCartValidator cartValidator,
            IOrderCalculationService orderCalculationService,
            IProductAttributeMaterializer productAttributeMaterializer,
            ICheckoutAttributeMaterializer checkoutAttributeMaterializer)
        {
            _db              = db;
            _workContext     = workContext;
            _storeContext    = storeContext;
            _requestCache    = requestCache;
            _eventPublisher  = eventPublisher;
            _currencyService = currencyService;
            _cartValidator   = cartValidator;
            _productAttributeMaterializer  = productAttributeMaterializer;
            _checkoutAttributeMaterializer = checkoutAttributeMaterializer;
            _orderCalculationService       = orderCalculationService;

            T = NullLocalizer.Instance;
        }
예제 #5
0
 public CheckoutController(
     SmartDbContext db,
     IOrderService orderService,
     IPaymentService paymentService,
     IShippingService shippingService,
     IShoppingCartService shoppingCartService,
     IOrderProcessingService orderProcessingService,
     IOrderCalculationService orderCalculationService,
     IShoppingCartValidator shoppingCartValidator,
     ShippingSettings shippingSettings,
     PaymentSettings paymentSettings,
     OrderSettings orderSettings)
 {
     _db                      = db;
     _orderService            = orderService;
     _paymentService          = paymentService;
     _shippingService         = shippingService;
     _shoppingCartService     = shoppingCartService;
     _orderProcessingService  = orderProcessingService;
     _orderCalculationService = orderCalculationService;
     _shoppingCartValidator   = shoppingCartValidator;
     _shippingSettings        = shippingSettings;
     _paymentSettings         = paymentSettings;
     _orderSettings           = orderSettings;
 }
예제 #6
0
 public GetAddToCartHandler(
     IProductAttributeFormatter productAttributeFormatter,
     ITranslationService translationService,
     ITaxService taxService,
     IPricingService priceCalculationService,
     IPriceFormatter priceFormatter,
     IShoppingCartService shoppingCartService,
     IOrderCalculationService orderTotalCalculationService,
     IPictureService pictureService,
     IProductService productService,
     IProductAttributeParser productAttributeParser,
     IAuctionService auctionService,
     ShoppingCartSettings shoppingCartSettings,
     TaxSettings taxSettings,
     MediaSettings mediaSettings)
 {
     _productAttributeFormatter = productAttributeFormatter;
     _translationService        = translationService;
     _taxService                   = taxService;
     _pricingService               = priceCalculationService;
     _priceFormatter               = priceFormatter;
     _shoppingCartService          = shoppingCartService;
     _orderTotalCalculationService = orderTotalCalculationService;
     _pictureService               = pictureService;
     _productService               = productService;
     _productAttributeParser       = productAttributeParser;
     _auctionService               = auctionService;
     _shoppingCartSettings         = shoppingCartSettings;
     _taxSettings                  = taxSettings;
     _mediaSettings                = mediaSettings;
 }
예제 #7
0
        public OrderProcessingService(
            SmartDbContext db,
            IWorkContext workContext,
            IWebHelper webHelper,
            ILocalizationService localizationService,
            ICurrencyService currencyService,
            IPaymentService paymentService,
            IProductService productService,
            IProductAttributeMaterializer productAttributeMaterializer,
            IProductAttributeFormatter productAttributeFormatter,
            IOrderCalculationService orderCalculationService,
            ITaxService taxService,
            IShoppingCartService shoppingCartService,
            IShoppingCartValidator shoppingCartValidator,
            IShippingService shippingService,
            IGiftCardService giftCardService,
            INewsletterSubscriptionService newsletterSubscriptionService,
            ICheckoutAttributeFormatter checkoutAttributeFormatter,
            IEncryptor encryptor,
            IMessageFactory messageFactory,
            IEventPublisher eventPublisher,
            IActivityLogger activityLogger,
            RewardPointsSettings rewardPointsSettings,
            CatalogSettings catalogSettings,
            OrderSettings orderSettings,
            ShoppingCartSettings shoppingCartSettings,
            LocalizationSettings localizationSettings,
            TaxSettings taxSettings)
        {
            _db                            = db;
            _workContext                   = workContext;
            _webHelper                     = webHelper;
            _localizationService           = localizationService;
            _currencyService               = currencyService;
            _paymentService                = paymentService;
            _productService                = productService;
            _productAttributeMaterializer  = productAttributeMaterializer;
            _productAttributeFormatter     = productAttributeFormatter;
            _orderCalculationService       = orderCalculationService;
            _taxService                    = taxService;
            _shoppingCartService           = shoppingCartService;
            _shoppingCartValidator         = shoppingCartValidator;
            _shippingService               = shippingService;
            _giftCardService               = giftCardService;
            _newsletterSubscriptionService = newsletterSubscriptionService;
            _checkoutAttributeFormatter    = checkoutAttributeFormatter;
            _encryptor                     = encryptor;
            _messageFactory                = messageFactory;
            _eventPublisher                = eventPublisher;
            _activityLogger                = activityLogger;
            _rewardPointsSettings          = rewardPointsSettings;
            _catalogSettings               = catalogSettings;
            _orderSettings                 = orderSettings;
            _shoppingCartSettings          = shoppingCartSettings;
            _localizationSettings          = localizationSettings;
            _taxSettings                   = taxSettings;

            _primaryCurrency = currencyService.PrimaryCurrency;
            _workingCurrency = workContext.WorkingCurrency;
        }
예제 #8
0
 public DeliveryOrderProcessor(
     IOrderCalculationService calculationService, 
     IServiceChargeCalculationService serviceChargeCalculationService)
 {
     this.calculationService = calculationService;
     this.serviceChargeCalculationService = serviceChargeCalculationService;
 }
예제 #9
0
 public ValidateMinShoppingCartSubtotalAmountCommandHandler(
     IOrderCalculationService orderTotalCalculationService,
     OrderSettings orderSettings)
 {
     _orderTotalCalculationService = orderTotalCalculationService;
     _orderSettings = orderSettings;
 }
예제 #10
0
        private MainViewModel GetVm()
        {
            MainViewModel.IsUnitTesting = true;
            _ibClient                = new IBClient(new EReaderMonitorSignal());
            _connectionService       = Substitute.For <IConnectionService>();
            _orderManager            = Substitute.For <IOrderManager>();
            _accountManager          = Substitute.For <IAccountManager>();
            _contractManager         = Substitute.For <IContractManager>();
            _marketDataManager       = Substitute.For <IMarketDataManager>();
            _historicalDataManager   = Substitute.For <IHistoricalDataManager>();
            _orderCalculationService = Substitute.For <IOrderCalculationService>();
            _exchangeRateService     = Substitute.For <IExchangeRateService>();
            _tradeRepository         = Substitute.For <ITradeRepository>();
            var orderManager = Substitute.For <IOrderManager>();

            _ordersViewModel    = new OrdersViewModel(_contractManager, _marketDataManager, _historicalDataManager, _orderCalculationService, orderManager, _tradeRepository);
            _statusBarViewModel = Substitute.For <StatusBarViewModel>();

            var positionsManager   = Substitute.For <IPositionManager>();
            var contractManager    = Substitute.For <IContractManager>();
            var positionsViewModel = new PositionsViewModel(_marketDataManager, _accountManager, positionsManager, contractManager);
            var detailsViewModel   = new DetailsViewModel();

            _settingsViewModel = new SettingsViewModel();

            return(new MainViewModel(_ibClient, _connectionService, _orderManager, _accountManager, _ordersViewModel, _statusBarViewModel, _historicalDataManager, _exchangeRateService, _orderCalculationService, positionsViewModel, detailsViewModel, _settingsViewModel));
        }
 public OrderTotalsViewComponent(
     SmartDbContext db,
     ITaxService taxService,
     ITaxCalculator taxCalculator,
     ICurrencyService currencyService,
     IGiftCardService giftCardService,
     IShoppingCartService shoppingCartService,
     ILocalizationService localizationService,
     IOrderCalculationService orderCalculationService,
     ShoppingCartSettings shoppingCartSettings,
     MeasureSettings measureSettings,
     TaxSettings taxSettings)
 {
     _db                      = db;
     _taxService              = taxService;
     _taxCalculator           = taxCalculator;
     _currencyService         = currencyService;
     _giftCardService         = giftCardService;
     _shoppingCartService     = shoppingCartService;
     _localizationService     = localizationService;
     _orderCalculationService = orderCalculationService;
     _shoppingCartSettings    = shoppingCartSettings;
     _measureSettings         = measureSettings;
     _taxSettings             = taxSettings;
 }
예제 #12
0
 public DeliveryOrderProcessor(
     IOrderCalculationService calculationService,
     IServiceChargeCalculationService serviceChargeCalculationService)
 {
     this.calculationService = calculationService;
     this.serviceChargeCalculationService = serviceChargeCalculationService;
 }
예제 #13
0
 public ValidateShoppingCartTotalAmountCommandHandler(
     IOrderCalculationService orderTotalCalculationService,
     IGroupService groupService,
     OrderSettings orderSettings)
 {
     _orderTotalCalculationService = orderTotalCalculationService;
     _groupService  = groupService;
     _orderSettings = orderSettings;
 }
예제 #14
0
        public static Task <(Money Amount, Discount AppliedDiscount)> GetOrderTotalDiscountAsync(
            this IOrderCalculationService orderCalculationService,
            Money orderTotal,
            Customer customer)
        {
            Guard.NotNull(orderCalculationService, nameof(orderCalculationService));

            return(orderCalculationService.GetDiscountAmountAsync(orderTotal, DiscountType.AssignedToOrderTotal, customer));
        }
예제 #15
0
 public GetCustomerLoyaltyPointsHandler(ILoyaltyPointsService loyaltyPointsService, IDateTimeService dateTimeService,
                                        ICurrencyService currencyService, IPriceFormatter priceFormatter, IOrderCalculationService orderTotalCalculationService,
                                        LoyaltyPointsSettings loyaltyPointsSettings)
 {
     _loyaltyPointsService         = loyaltyPointsService;
     _dateTimeService              = dateTimeService;
     _currencyService              = currencyService;
     _priceFormatter               = priceFormatter;
     _orderTotalCalculationService = orderTotalCalculationService;
     _loyaltyPointsSettings        = loyaltyPointsSettings;
 }
예제 #16
0
 /// <summary>
 /// Initializes a new instance of the <see cref="OrderService"/> class.
 /// </summary>
 /// <param name="productRepository">The product repository.</param>
 /// <param name="orderRepository">The order repository.</param>
 /// <param name="amountCalculator">The amount calculator.</param>
 /// <param name="confirmationService">The confirmation service.</param>
 public OrderService(
     IProductRepository productRepository,
     IOrderRepository orderRepository,
     IOrderCalculationService amountCalculator,
     IConfirmationService confirmationService)
 {
     this.producRepository        = productRepository;
     this.orderRepository         = orderRepository;
     this.orderCalculationService = amountCalculator;
     this.confirmationService     = confirmationService;
 }
예제 #17
0
 public PaymentBrainTreeViewComponent(BrainTreePaymentSettings brainTreePaymentSettings,
                                      IOrderCalculationService orderTotalCalculationService,
                                      IShoppingCartService shoppingCartService,
                                      IWorkContext workContext,
                                      ITranslationService translationService)
 {
     _brainTreePaymentSettings     = brainTreePaymentSettings;
     _orderTotalCalculationService = orderTotalCalculationService;
     _shoppingCartService          = shoppingCartService;
     _workContext        = workContext;
     _translationService = translationService;
 }
예제 #18
0
 public NewOrderViewModelFactory(
     IDispatcherHelper dispatcherHelper,
     IQueueProcessor queueProcessor,
     IFindSymbolService findSymbolService,
     IOrderCalculationService orderCalculationService,
     IOrderManager orderManager)
 {
     _dispatcherHelper        = dispatcherHelper;
     _queueProcessor          = queueProcessor;
     _findSymbolService       = findSymbolService;
     _orderCalculationService = orderCalculationService;
     _orderManager            = orderManager;
 }
예제 #19
0
 public CheckoutShippingMethodMapper(
     ICommonServices services,
     ICurrencyService currencyService,
     IShippingService shippingService,
     IOrderCalculationService orderCalculationService,
     ITaxCalculator taxCalculator)
 {
     _services                = services;
     _currencyService         = currencyService;
     _shippingService         = shippingService;
     _orderCalculationService = orderCalculationService;
     _taxCalculator           = taxCalculator;
 }
예제 #20
0
 public NewOrderViewModel(
     IDispatcherHelper dispatcherHelper,
     IQueueProcessor queueProcessor,
     IFindSymbolService findSymbolService,
     IOrderCalculationService orderCalculationService,
     IOrderManager orderManager)
     : base(dispatcherHelper, queueProcessor)
 {
     Symbol.PropertyChanged  += OnSymbolPropertyChanged;
     _findSymbolService       = findSymbolService;
     _orderCalculationService = orderCalculationService;
     _orderManager            = orderManager;
     Messenger.Default.Register <AccountSummary>(this, msg => _accountId = msg.AccountId);
     Messenger.Default.Register <OrderStatusChangedMessage>(this, OrderStatusChangedMessage.Tokens.Orders, OnOrderStatusChangedMessage);
 }
 public GetShippingMethodHandler(IShippingService shippingService,
                                 IUserFieldService userFieldService,
                                 IOrderCalculationService orderTotalCalculationService,
                                 ITaxService taxService,
                                 ICurrencyService currencyService,
                                 IPriceFormatter priceFormatter,
                                 ShippingSettings shippingSettings)
 {
     _shippingService              = shippingService;
     _userFieldService             = userFieldService;
     _orderTotalCalculationService = orderTotalCalculationService;
     _taxService       = taxService;
     _currencyService  = currencyService;
     _priceFormatter   = priceFormatter;
     _shippingSettings = shippingSettings;
 }
예제 #22
0
 public GetPaymentMethodHandler(ILoyaltyPointsService loyaltyPointsService,
                                IOrderCalculationService orderTotalCalculationService,
                                ICurrencyService currencyService,
                                IPriceFormatter priceFormatter,
                                IPaymentService paymentService,
                                ITaxService taxService,
                                LoyaltyPointsSettings loyaltyPointsSettings,
                                PaymentSettings paymentSettings)
 {
     _loyaltyPointsService         = loyaltyPointsService;
     _orderTotalCalculationService = orderTotalCalculationService;
     _currencyService       = currencyService;
     _priceFormatter        = priceFormatter;
     _paymentService        = paymentService;
     _taxService            = taxService;
     _loyaltyPointsSettings = loyaltyPointsSettings;
     _paymentSettings       = paymentSettings;
 }
 public GetEstimateShippingResultHandler(
     IShippingService shippingService,
     IPickupPointService pickupPointService,
     IOrderCalculationService orderTotalCalculationService,
     ITaxService taxService,
     ICurrencyService currencyService,
     ITranslationService translationService,
     IPriceFormatter priceFormatter,
     ShippingSettings shippingSettings)
 {
     _shippingService              = shippingService;
     _pickupPointService           = pickupPointService;
     _orderTotalCalculationService = orderTotalCalculationService;
     _taxService         = taxService;
     _currencyService    = currencyService;
     _translationService = translationService;
     _priceFormatter     = priceFormatter;
     _shippingSettings   = shippingSettings;
 }
예제 #24
0
 public ShoppingCartModelMapper(
     SmartDbContext db,
     ICommonServices services,
     ITaxCalculator taxCalculator,
     IProductService productService,
     IPriceCalculationService priceCalculationService,
     IMediaService mediaService,
     IPaymentService paymentService,
     IDiscountService discountService,
     ICurrencyService currencyService,
     IHttpContextAccessor httpContextAccessor,
     IShoppingCartValidator shoppingCartValidator,
     IOrderCalculationService orderCalculationService,
     ICheckoutAttributeFormatter checkoutAttributeFormatter,
     ICheckoutAttributeMaterializer checkoutAttributeMaterializer,
     ShoppingCartSettings shoppingCartSettings,
     CatalogSettings catalogSettings,
     MediaSettings mediaSettings,
     OrderSettings orderSettings,
     MeasureSettings measureSettings,
     ShippingSettings shippingSettings,
     RewardPointsSettings rewardPointsSettings,
     Localizer T)
     : base(services, shoppingCartSettings, catalogSettings, mediaSettings, T)
 {
     _db                            = db;
     _taxCalculator                 = taxCalculator;
     _productService                = productService;
     _priceCalculationService       = priceCalculationService;
     _mediaService                  = mediaService;
     _paymentService                = paymentService;
     _discountService               = discountService;
     _currencyService               = currencyService;
     _httpContextAccessor           = httpContextAccessor;
     _shoppingCartValidator         = shoppingCartValidator;
     _orderCalculationService       = orderCalculationService;
     _checkoutAttributeFormatter    = checkoutAttributeFormatter;
     _checkoutAttributeMaterializer = checkoutAttributeMaterializer;
     _shippingSettings              = shippingSettings;
     _orderSettings                 = orderSettings;
     _measureSettings               = measureSettings;
     _rewardPointsSettings          = rewardPointsSettings;
 }
예제 #25
0
        public OrderRepository(
            IJobManager manager,
            SupportedOrderStore supportedOrderStore,
            AccountManager accountManager,
            IHRIDService hridService,
            IPaymentManager paymentManager,
            IVendorService vendorService
            )
        {
            this.manager = manager;
            this.supportedOrderStore = supportedOrderStore;
            this.accountManager = accountManager;
            this.hridService = hridService;
            this.vendorService = vendorService;

            orderCalculationService = new DefaultOrderCalculationService();
            serviceChargeCalculationService = new DefaultDeliveryServiceChargeCalculationService();
            paymentService = new PaymentService(paymentManager);
        }
예제 #26
0
 public GetOrderTotalsHandler(
     IOrderCalculationService orderTotalCalculationService,
     ICurrencyService currencyService,
     IPriceFormatter priceFormatter,
     IPaymentService paymentService,
     ITaxService taxService,
     IMediator mediator,
     TaxSettings taxSettings,
     LoyaltyPointsSettings loyaltyPointsSettings)
 {
     _orderTotalCalculationService = orderTotalCalculationService;
     _currencyService       = currencyService;
     _priceFormatter        = priceFormatter;
     _paymentService        = paymentService;
     _taxService            = taxService;
     _mediator              = mediator;
     _taxSettings           = taxSettings;
     _loyaltyPointsSettings = loyaltyPointsSettings;
 }
        private static NewOrderViewModel GetStandardVm(
            IOrderCalculationService orderCalculationService,
            FindCommandResultsModel model,
            string symbol = "M",
            IOrderManager orderManager = null)
        {
            // Arrange
            var findSymbolService = Substitute.For <IFindSymbolService>();
            var builder           = new NewOrderViewModelBuilder()
                                    .WithFindSymbolService(findSymbolService)
                                    .WithOrderCalculationService(orderCalculationService)
                                    .WithOrderManager(orderManager);
            var vm = builder.Build();

            vm.Symbol.Code = symbol;
            findSymbolService.IssueFindSymbolRequestAsync(Arg.Any <Contract>()).Returns(Task.FromResult(model));

            return(vm);
        }
예제 #28
0
        public OrderRepository(
            IJobManager manager,
            SupportedOrderStore supportedOrderStore,
            AccountManager accountManager,
            IHRIDService hridService,
            IPaymentManager paymentManager,
            IVendorService vendorService,
            IObserver <Job> jobSearchIndexSubject)
        {
            this.manager               = manager;
            this.supportedOrderStore   = supportedOrderStore;
            this.accountManager        = accountManager;
            this.hridService           = hridService;
            this.vendorService         = vendorService;
            this.jobSearchIndexService = jobSearchIndexSubject;

            orderCalculationService         = new DefaultOrderCalculationService();
            serviceChargeCalculationService = new DefaultDeliveryServiceChargeCalculationService();
            paymentService = new PaymentService(paymentManager);
        }
 public GetMiniShoppingCartHandler(
     IShoppingCartService shoppingCartService,
     IOrderCalculationService orderTotalCalculationService,
     IPriceFormatter priceFormatter,
     ITaxService taxService,
     ICheckoutAttributeService checkoutAttributeService,
     IProductService productService,
     IProductAttributeFormatter productAttributeFormatter,
     IProductAttributeParser productAttributeParser,
     ITranslationService translationService,
     IPricingService priceCalculationService,
     IGroupService groupService,
     IPictureService pictureService,
     IMediator mediator,
     IHttpContextAccessor httpContextAccessor,
     LinkGenerator linkGenerator,
     ShoppingCartSettings shoppingCartSettings,
     OrderSettings orderSettings,
     TaxSettings taxSettings,
     MediaSettings mediaSettings)
 {
     _shoppingCartService          = shoppingCartService;
     _orderTotalCalculationService = orderTotalCalculationService;
     _priceFormatter            = priceFormatter;
     _taxService                = taxService;
     _checkoutAttributeService  = checkoutAttributeService;
     _productService            = productService;
     _productAttributeFormatter = productAttributeFormatter;
     _productAttributeParser    = productAttributeParser;
     _translationService        = translationService;
     _pricingService            = priceCalculationService;
     _groupService              = groupService;
     _pictureService            = pictureService;
     _mediator             = mediator;
     _httpContextAccessor  = httpContextAccessor;
     _linkGenerator        = linkGenerator;
     _shoppingCartSettings = shoppingCartSettings;
     _orderSettings        = orderSettings;
     _taxSettings          = taxSettings;
     _mediaSettings        = mediaSettings;
 }
        private static async Task <NewOrderViewModel> FindCommandTestAsync(IOrderCalculationService orderCalculationService, FindCommandResultsModel model, string symbol = "M")
        {
            // Arrange


            //var findSymbolService = Substitute.For<IFindSymbolService>();
            //var builder = new NewOrderViewModelBuilder()
            //                .WithFindSymbolService(findSymbolService)
            //                .WithOrderCalculationService(orderCalculationService);
            //var vm = builder.Build();

            //vm.Symbol.Code = symbol;
            //findSymbolService.IssueFindSymbolRequestAsync(vm).Returns(Task.FromResult(model));

            var vm = GetStandardVm(orderCalculationService, model, symbol);

            // Act
            await vm.FindCommand.ExecuteAsync();

            return(vm);
        }
예제 #31
0
        private static OrdersListViewModel GetVm(
            ITradeRepository tradeRepository                 = null,
            IMarketDataManager marketDataManager             = null,
            IOrderCalculationService orderCalculationService = null,
            IOrderManager orderManager = null)
        {
            var dispatcherHelper = Substitute.For <IDispatcherHelper>();

            dispatcherHelper
            .When(x => x.InvokeOnUiThread(Arg.Any <Action>()))
            .Do(x => x.Arg <Action>().Invoke());

            var queueProcessor = Substitute.For <IQueueProcessor>();

            if (tradeRepository == null)
            {
                tradeRepository = Substitute.For <ITradeRepository>();
            }

            if (marketDataManager == null)
            {
                marketDataManager = Substitute.For <IMarketDataManager>();
            }

            var findSymbolService = Substitute.For <IFindSymbolService>();

            if (orderCalculationService == null)
            {
                orderCalculationService = Substitute.For <IOrderCalculationService>();
            }

            if (orderManager == null)
            {
                orderManager = Substitute.For <IOrderManager>();
            }

            var factory = new NewOrderViewModelFactory(dispatcherHelper, queueProcessor, findSymbolService, orderCalculationService, orderManager);

            return(new OrdersListViewModel(dispatcherHelper, Substitute.For <IQueueProcessor>(), factory, tradeRepository, marketDataManager));
        }
예제 #32
0
        public MainViewModel(
            IDispatcherHelper dispatcherHelper,
            IConnectionService connectionService,
            IOrderCalculationService orderCalculationService,
            PositionsViewModel positionsViewModel,
            SettingsViewModel settingsViewModel,
            OrdersListViewModel ordersListViewModel,
            IRiskCalculationService riskCalculationService,
            ITradeRecordingService tradeRecordingService)
            : base(dispatcherHelper)
        {
            _connectionService                  = connectionService;
            OrdersListViewModel                 = ordersListViewModel;
            _riskCalculationService             = riskCalculationService;
            _tradeRecordingService              = tradeRecordingService;
            PositionsViewModel                  = positionsViewModel;
            _settingsViewModel                  = settingsViewModel;
            _settingsViewModel.PropertyChanged += OnSettingsViewModelPropertyChanged;
            _orderCalculationService            = orderCalculationService;

            Messenger.Default.Register <ConnectionChangedMessage>(this, HandleConnectionChangedMessage);
            Messenger.Default.Register <DetailsPanelClosedMessage>(this, HandleDetailsPanelClosed);
            Messenger.Default.Register <OrderStatusChangedMessage>(this, OrderStatusChangedMessage.Tokens.Main, HandleOrderStatusChangedMessage);

            _connectionService.ClientError += HandleClientError;
            SetConnectionStatus();
            CreateMenuItems();

            // Load settings on a different thread as it's slow and so that we can show the main window straight away
            Task.Run(() => _settingsViewModel.LoadSettingsAsync())
            .ContinueWith(t =>
            {
                HandleLoadSettingsTaskResult(t);
            })
            .ConfigureAwait(false);
        }