Beispiel #1
0
        public Account(string name, IConnection connection, IApiObjectsFactory factory, IExecutionStorageInternal executionStorage,
            IPositionsStorageInternal positionsesStorageInternal, IOrdersStorageInternal ordersStorageInternal,
            IIdsDispenser idsDispenser, CancellationTokenSource internalCancelationTokenSource,
            AccountCurrenciesFields accountCurrenciesFields)
        {
            CodeContract.Requires(!string.IsNullOrEmpty(name));
            CodeContract.Requires(connection != null);
            CodeContract.Requires(factory != null);
            CodeContract.Requires(executionStorage != null);
            CodeContract.Requires(positionsesStorageInternal != null);
            CodeContract.Requires(ordersStorageInternal != null);
            CodeContract.Requires(accountCurrenciesFields != null);
            CodeContract.Requires(idsDispenser != null);

            this.AccountName = name;
            this.AccountId = name;

            this.factory = factory;
            this.executionStorage = executionStorage;
            this.positionsesStorage = positionsesStorageInternal;
            this.ordersStorage = ordersStorageInternal;
            this.accountCurrenciesFields = accountCurrenciesFields;
            this.idsDispenser = idsDispenser;
            this.internalCancelationTokenSource = internalCancelationTokenSource;

            this.subscription =
                connection.Subscribe((AccountValueMessage message) => message.AccountName == this.AccountName,
                    this.OnAccountValueMessage);
        }
Beispiel #2
0
 public IAccountInternal CreateAccount(string accountName, IExecutionStorageInternal executionStorage,
     IPositionsStorageInternal positionsStorage, IOrdersStorageInternal ordersStorage,
     AccountCurrenciesFields accountCurrenciesFields)
 {
     return new Account(accountName, this.connection, this, executionStorage, positionsStorage, ordersStorage,
         this.idsDispenser, this.internalCancellationTokenSource,
         accountCurrenciesFields);
 }
        public CreateAccountOperation(IConnection connection, IApiObjectsFactory factory, string account,
            CancellationToken cancellationToken)
        {
            Contract.Requires(connection != null);
            Contract.Requires(factory != null);
            Contract.Requires(!string.IsNullOrEmpty(account));

            this.factory = factory;
            this.account = account;
            this.cancellationToken = cancellationToken;
            this.cancellationToken.Register(() => this.taskCompletionSource.TrySetCanceled());
            this.positionStorage = this.factory.CreatePositionStorage(account);
            this.ordersStorage = this.factory.CreateOrdersStorage(account);
            this.createExecutionsStorage = factory.CreateExecutionStorageOperation(account, cancellationToken);
            this.Subscribe(connection);
            this.SendRequest(connection);
        }