예제 #1
0
        /// <summary>
        /// Add a follower. The follower object not created immediatly, but datas neaded to created follower stored in a special list
        /// When a "SubscribeFollower" method called a follower will be created and subscribe
        /// </summary>
        /// <param name="followerID">a follower id</param>
        /// <param name="userName"> follower broker login</param>
        /// <param name="userPassword">follower broker password</param>
        /// <param name="email">follower email</param>
        /// <param name="syncMode">follower sync mode</param>
        public void AddNewFollower(String followerID, String userName, String userPassword, String email,
                                   Presets.SynchronizationMode syncMode = Presets.SynchronizationMode.SynchronizePositions)
        {
            //Перевірити чи фоловер ще не додано у список очікування
            IEnumerable <FollowerPropereties> selectedFollower = from sf in _notInitializedFollowers
                                                                 where sf.FollowerID == followerID
                                                                 select sf;

            if (selectedFollower.Count() != 0)
            {
                throw new Exception("Follower allredy exist in a wait list");
            }
            //Перевірити чи фоловер ще не існує
            if (Program.GetFollowerById(followerID) != null)
            {
                throw new Exception("Follower allredy exist");
            }

            FollowerPropereties followerProps = new FollowerPropereties
            {
                FollowerID           = followerID,
                FollowerBrokerLogin  = userName,
                FollowerBrokerPasswd = userPassword,
                FollowerEmail        = email,
                FollowerSynchMode    = syncMode
            };

            lock (_syncFollowerList)
            {
                _notInitializedFollowers.Add(followerProps);
            }
        }
 public FollowerPropereties(String followerID, String followerBrokerLogin, String followerBrokerPasswd, String followerEmail,
                            Presets.SynchronizationMode followerSyncMode)
 {
     FollowerID           = followerID;
     FollowerBrokerLogin  = followerBrokerLogin;
     FollowerBrokerPasswd = followerBrokerPasswd;
     FollowerEmail        = followerEmail;
     FollowerSynchMode    = followerSyncMode;
 }
예제 #3
0
 public TradingClass(String _userID, String userName, String userPassword, String url, String email, ErrorDbHandler _dbHandler, Presets.SynchronizationMode syncMode = Presets.SynchronizationMode.SynchronizePositions)
 {
     FollowerEmail =  email;
     dbHandler     = _dbHandler;
     _followerID   = _userID;
     _syncMode     = syncMode;
     randomGenerator  = new Random((int)(DateTime.Now.Ticks / 10000));
     _enabledLock     = new Object();
     _inProgressLock  = new Object();
     orderTransaction = new OrderTransaction(new Presets.OrderEvent(onOrder), new Presets.ErrorEvent(onError), _userID);
     _api             = new API(url, userName, userPassword, new Presets.APIEvent(OnApievent));
     _enabled         = true; //<--- Place to the end???
     _emailNotifier   = null;
     // Configure objects
     switch (syncMode)
     {
         case Presets.SynchronizationMode.SynchronizePositions:
             Program.MarkUserToSync(_userID);
             _enabled = false;
             break;
     }
     //Create inlternal sync class
 }
예제 #4
0
 public TradingClass(String _userID, String userName, String userPassword, String url, String email, ErrorDbHandler _dbHandler, Presets.SynchronizationMode syncMode = Presets.SynchronizationMode.SynchronizePositions)
 {
     FollowerEmail    = email;
     dbHandler        = _dbHandler;
     _followerID      = _userID;
     _syncMode        = syncMode;
     randomGenerator  = new Random((int)(DateTime.Now.Ticks / 10000));
     _enabledLock     = new Object();
     _inProgressLock  = new Object();
     orderTransaction = new OrderTransaction(new Presets.OrderEvent(onOrder), new Presets.ErrorEvent(onError), _userID);
     _api             = new API(url, userName, userPassword, new Presets.APIEvent(OnApievent));
     _enabled         = true; //<--- Place to the end???
     _emailNotifier   = null;
     // Configure objects
     switch (syncMode)
     {
     case Presets.SynchronizationMode.SynchronizePositions:
         Program.MarkUserToSync(_userID);
         _enabled = false;
         break;
     }
     //Create inlternal sync class
 }