예제 #1
0
 private void OnRspUserLogin(ref CtpResponse rsp)
 {
     CtpLoginInfo = rsp.Item1.AsRspUserLogin;
     if (CtpLoginInfo != null && CtpConvert.CheckRspInfo(rsp.Item2))
     {
         UserLogin            = new RspUserLoginField();
         UserLogin.TradingDay = CtpConvert.GetDate(CtpLoginInfo.TradingDay);
         UserLogin.LoginTime  = CtpConvert.GetTime(CtpLoginInfo.LoginTime);
         UserLogin.UserID     = CtpLoginInfo.UserID;
         UserLogin.SessionID  = $"{CtpLoginInfo.FrontID}:{CtpLoginInfo.SessionID}";
         _publisher.Post(ConnectionStatus.Logined, UserLogin);
         if (string.IsNullOrEmpty(CtpLoginInfo.MaxOrderRef))
         {
             _orderRefId = 1;
         }
         else
         {
             _orderRefId = int.Parse(CtpLoginInfo.MaxOrderRef) + 1;
         }
         DoSettlementInfoConfirm();
     }
     else
     {
         SendError(rsp.Item2, nameof(OnRspUserLogin));
         _publisher.Post(ConnectionStatus.Disconnected);
     }
 }
예제 #2
0
        private void OnRspUserLogin(ref CtpResponse rsp)
        {
            ctpLoginInfo = rsp.Item1.AsRspUserLogin;
            if (ctpLoginInfo != null && CtpConvert.CheckRspInfo(rsp.Item2))
            {
                if (!Connected)
                {
                    UserLogin            = new RspUserLoginField();
                    UserLogin.TradingDay = CtpConvert.GetDate(ctpLoginInfo.TradingDay);
                    UserLogin.LoginTime  = CtpConvert.GetTime(ctpLoginInfo.LoginTime);
                    UserLogin.UserID     = ctpLoginInfo.UserID;
                    UserLogin.SessionID  = $"{ctpLoginInfo.FrontID}:{ctpLoginInfo.SessionID}";
                    UserLogin.Text       = string.IsNullOrEmpty(ctpLoginInfo.MaxOrderRef) ? "1" : ctpLoginInfo.MaxOrderRef;
                    _orderRef            = int.Parse(UserLogin.Text);
                    _publisher.Post(ConnectionStatus.Logined, UserLogin);
#if CTPMINI
                    Connected = true;
                    _publisher.Post(ConnectionStatus.Confirmed);
                    _publisher.Post(ConnectionStatus.Done, UserLogin);
#else
                    DoSettlementInfoConfirm();
#endif
                }
                else
                {
                    spi.ProcessLog(new LogField(LogLevel.Debug, $"Ctpse trader({User.UserID}) login success"));
                }
            }
            else
            {
                SendError(rsp.Item2, nameof(OnRspUserLogin));
                _publisher.Post(ConnectionStatus.Disconnected);
            }
        }