Exemple #1
0
        /// <inheritdoc />
        public StrategySubscriptionInfoMessage Subscribe(StrategyInfoMessage strategy, bool isAutoRenew)
        {
            if (strategy == null)
            {
                throw new ArgumentNullException(nameof(strategy));
            }

            var subscription = Invoke(f => f.Subscribe2(SessionId, strategy.Id, isAutoRenew));

            if (subscription.Id < 0)
            {
                ValidateError((byte)-subscription.Id, strategy.Id);
            }
            else
            {
                lock (_subscriptions.SyncRoot)
                {
                    var prevSubscr = _subscriptions.TryGetValue(subscription.Id);

                    if (prevSubscr == null)
                    {
                        _subscriptions.Add(subscription.Id, subscription);
                    }
                    else
                    {
                        subscription = prevSubscr;
                    }
                }

                StrategySubscribed?.Invoke(subscription);
            }

            return(subscription);
        }
Exemple #2
0
        /// <inheritdoc />
        public void DeleteStrategy(StrategyInfoMessage strategy)
        {
            if (strategy == null)
            {
                throw new ArgumentNullException(nameof(strategy));
            }

            ValidateError(Invoke(f => f.DeleteStrategy(SessionId, strategy.Id)), strategy.Id);

            _strategies.Remove(strategy.Id);
            StrategyDeleted?.Invoke(strategy);
        }
Exemple #3
0
        /// <inheritdoc />
        public void CreateStrategy(StrategyInfoMessage strategy)
        {
            var id = Invoke(f => f.CreateStrategy2(SessionId, IsEnglish, strategy));

            if (id < 0)
            {
                ValidateError((byte)-id, strategy.Id, strategy.Price);
            }
            else
            {
                strategy.Id = id;
            }

            _strategies.Add(id, strategy);
            StrategyCreated?.Invoke(strategy);
        }
Exemple #4
0
 /// <inheritdoc />
 public void UpdateStrategy(StrategyInfoMessage strategy)
 {
     ValidateError(Invoke(f => f.UpdateStrategy2(SessionId, strategy)), strategy.Id);
     StrategyUpdated?.Invoke(strategy);
 }