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(object sender, CtpRspUserLogin response, CtpRspInfo rspInfo, int requestId, bool isLast) { if (response != null && CtpConvert.CheckRspInfo(rspInfo)) { if (Connected) { Resubscribe(); return; } Connected = true; UserLogin = new RspUserLoginField(); var now = DateTime.Now; UserLogin.TradingDay = now.Year * 10000 + now.Month * 100 + now.Day; UserLogin.LoginTime = now.Hour * 10000 + now.Minute * 100 + now.Second; UserLogin.UserID = User.UserID; UserLogin.SessionID = string.Empty; _publisher.Post(ConnectionStatus.Logined, UserLogin); _publisher.Post(ConnectionStatus.Done); } else { SendError(rspInfo, 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); } }
///登录请求响应 private void NativeOnRspUserLogin(CtpRspUserLogin rspUserLogin, CtpRspInfo rspInfo, int requestId, bool isLast) { var rsp = new CtpResponse(); rsp.TypeId = CtpResponseType.OnRspUserLogin; rsp.Item1 = new CtpAny(rspUserLogin); rsp.Item2 = rspInfo; rsp.RequestID = requestId; rsp.IsLast = isLast; ProcessResponse(ref rsp); }
public static string GetId(CtpInputOrder input, CtpRspUserLogin login) { return($"{login.FrontID}:{login.SessionID}:{input.OrderRef}"); }