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); } }
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); } }