示例#1
0
文件: Process.cs 项目: webkawa/baraka
        /// <summary>
        ///     Injecte un contrat au sein d'un gestionnaire adapté et retourne l'observable
        ///     de finalisation.
        /// </summary>
        /// <typeparam name="TContract">Type de contrat injecté.</typeparam>
        /// <param name="contract">Contrat injecté.</param>
        /// <param name="manager">Gestionnaire utilisé.</param>
        /// <param name="postback">Actions complémentaires.</param>
        /// <param name="async">Mode asynchrone.</param>
        /// <returns>Observable correspondant.</returns>
        private IObservable <ContractResult> Run <TContract>(TContract contract, IContractManager <TContract> manager, Action <QuickProcess> postback, bool async)
            where TContract : IContract
        {
            // Gestion du statut
            if (CurrentStatus != ContractStatus.RUNNING)
            {
                throw new EngineException("Processes piling can only be done inside of an 'Execute()' treatment");
            }

            // Gestion de l'observable
            if (!async)
            {
                SubProcesses.Add(contract);
            }

            // Gestion du retour
            if (postback != null)
            {
                contract.OnFinalized.Subscribe((result) =>
                {
                    var sub = new QuickProcess(Engine, postback);
                    Engine.ProcessManager.Inject(sub);
                });
            }

            // Injection et renvoi
            manager.Inject(contract);
            return(contract.OnFinalized);
        }
示例#2
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));
        }
示例#3
0
 /// <summary>
 /// Construct the .Net API Controller for managing contracts.
 /// </summary>
 /// <param name="contractManager">The contract manager service.</param>
 public ContractManagerController(IContractManager contractManager)
 {
     if (contractManager is null)
     {
         throw new ArgumentNullException(nameof(contractManager));
     }
     _contractManager = contractManager;
 }
示例#4
0
 public FindSymbolService(
     IMarketDataManager marketDataManager,
     IHistoricalDataManager historicalDataManager,
     IContractManager contractManager)
 {
     _marketDataManager     = marketDataManager;
     _historicalDataManager = historicalDataManager;
     _contractManager       = contractManager;
 }
示例#5
0
 public BpmnSynchronizer(
     IBpmnEventHandler bpmnEventHandler,
     IProcessManager processManager,
     IContractManager contractManager,
     EditElementService editElementService,
     IJSRuntime jsRuntime)
 {
     _bpmnEventHandler   = bpmnEventHandler;
     _processManager     = processManager;
     _editElementService = editElementService;
     _contractManager    = contractManager;
     _jsRuntime          = jsRuntime;
 }
        private PositionsViewModel GetVm(
            IMarketDataManager marketDataManager         = null,
            IPositionManager positionManager             = null,
            IContractManager contractManager             = null,
            ITradeRecordingService tradeRecordingService = null)
        {
            var manager = marketDataManager ?? Substitute.For <IMarketDataManager>();

            _accountManager = Substitute.For <IAccountManager>();

            if (positionManager == null)
            {
                positionManager = Substitute.For <IPositionManager>();
                positionManager.RequestOpenOrdersAsync().Returns(Task.FromResult(new List <OpenOrderEventArgs>()));
            }

            if (contractManager == null)
            {
                contractManager = Substitute.For <IContractManager>();
                contractManager.RequestDetailsAsync(Arg.Any <Contract>()).Returns(Task.FromResult(new List <ContractDetails>()));
            }

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

            queueProcessor
            .When(x => x.Enqueue(Arg.Any <Action>()))
            .Do(x =>
            {
                var action = x.Arg <Action>();
                action.Invoke();
            });

            var dispatcherHelper = Substitute.For <IDispatcherHelper>();

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

            if (tradeRecordingService == null)
            {
                tradeRecordingService = Substitute.For <ITradeRecordingService>();
            }

            return(new PositionsViewModel(dispatcherHelper, manager, _accountManager, positionManager, contractManager, queueProcessor, tradeRecordingService));
        }
        private PositionsViewModel GetPositionForSymbolTest(
            PositionItem item,
            IMarketDataManager marketDataManager = null,
            IPositionManager positionManager     = null,
            IContractManager contractManager     = null)
        {
            var vm        = GetVm(marketDataManager, positionManager, contractManager);
            var positions = new List <PositionItem>
            {
                item
            };

            // Act
            _accountManager.RequestPositionsAsync().Returns(positions);
            return(vm);
        }
示例#8
0
        public PositionsViewModel(
            IDispatcherHelper dispatcherHelper,
            IMarketDataManager marketDataManager,
            IAccountManager accountManager,
            IPositionManager positionManager,
            IContractManager contractManager,
            IQueueProcessor queueProcessor,
            ITradeRecordingService tradeRecordingService)
            : base(dispatcherHelper, queueProcessor)
        {
            Positions = new ObservableCollectionNoReset <PositionItem>(dispatcherHelper: DispatcherHelper);

            Messenger.Default.Register <ConnectionChangingMessage>(this, HandleConnectionChangingMessage);
            Messenger.Default.Register <OrderStatusChangedMessage>(this, OrderStatusChangedMessage.Tokens.Positions, OnOrderStatusChangedMessage);
            Messenger.Default.Register <BarPriceMessage>(this, HandleBarPriceMessage);

            _marketDataManager     = marketDataManager;
            _accountManager        = accountManager;
            _positionManager       = positionManager;
            _contractManager       = contractManager;
            _queueProcessor        = queueProcessor;
            _tradeRecordingService = tradeRecordingService;
        }
示例#9
0
 public ContractController(IConfiguration configuration, IContractManager contractManager)
 {
     _configuration   = configuration;
     _contractManager = contractManager;
 }
示例#10
0
 public SheetsController(IMapper mapper, ISheetManager sheetManager, IContractManager contractManager)
 {
     _sheetManager    = sheetManager;
     _contractManager = contractManager;
     _mapper          = mapper;
 }
示例#11
0
 public ContractController(IContractManager contractManager)
 {
     ContractManager = contractManager;
 }
示例#12
0
 public UnassignRoleCommand(IContractManager contractManager, ProcessRole assignedRole, Select2 <ProcessRole> roleSelect) : base(contractManager)
 {
     AssignedRole = assignedRole;
     RoleSelect   = roleSelect;
 }
示例#13
0
 public RemoveUserCommand(IContractManager contractManager, ProcessUser removedUser) : base(contractManager)
 {
     RemovedUser = removedUser;
 }
示例#14
0
 public AddRoleCommand(IContractManager contractManager) : base(contractManager)
 {
 }
示例#15
0
 public UsersRolesManager(IContractManager contractManager)
 {
     _contractManager = contractManager;
 }
示例#16
0
 public ContractsController(IContractManager manager)
 {
     _manager = manager;
 }
示例#17
0
 public ContractCommand(IContractManager contractManager)
 {
     ContractManager = contractManager;
 }
示例#18
0
 public ProcessManager(IContractManager contractManager)
 {
     _contractManager = contractManager;
 }
示例#19
0
 public InvoicesController(IInvoiceManager invoiceManager, IContractManager contractManager)
 {
     _invoiceManager  = invoiceManager;
     _contractManager = contractManager;
 }
示例#20
0
 public InvoiceController(IMapper mapper, IInvoiceManager invoiceManager, IContractManager contractManager)
 {
     _invoiceManager  = invoiceManager;
     _contractManager = contractManager;
     _mapper          = mapper;
 }
示例#21
0
 public SheetsController(ISheetManager sheetManager, IContractManager contractManager)
 {
     _sheetManager    = sheetManager;
     _contractManager = contractManager;
 }
示例#22
0
 public RemoveRoleCommand(IContractManager contractManager, ProcessRole removedRole, IEnumerable <Select2 <ProcessRole> > roleContainers) : base(contractManager)
 {
     RoleContainers = roleContainers;
     RemovedRole    = removedRole;
 }
示例#23
0
 public AddUserCommand(IContractManager contractManager) : base(contractManager)
 {
 }