/// <summary> /// 记录命令请求日志 /// </summary> /// <param name="context">应用请求上下文应答实例</param> public virtual void CreateCmdLogs(T context) { //写入日志记录 if (CmdConfigs.CreateCmdQueryLogs() && context is ServiceContext) { ServiceContext sc = context as ServiceContext; CmdQueryLog log = new CmdQueryLog { UserId = sc.UserId, Command = sc.Command, AppChannel = sc.ReqChannel, Comment = sc.HasError ? "异常" : "正常", CreateDate = DateTime.Now }; LogsBiz.CreateLogs <CmdQueryLog>(log); } }
/// <summary> /// 获取命令请求分发服务器信息命令执行 /// </summary> /// <param name="context"></param> public override void Execute(DataContext context) { byte[] cmdData = context.CmdData; if (cmdData.Length != 4) { context.Flush(RespondCode.CmdDataLack); return; } int lastVer = BitConverter.ToInt32(cmdData.Reverse(), 0); if (Compiled.Debug) { cmdData.Debug("=== Support.CmdDispatch 上行数据==="); lastVer.Debug("=== Support.CmdDispatch 上行数据 ==="); } CmdConfig config = CmdConfigs.GetCmdConfigFromStorage(); var cmdWithServers = config.CmdList.Where(c => c.VCode > lastVer); if (cmdWithServers.Count() > 0) { CmdServer result = new CmdServer { LastVer = cmdWithServers.Max(c => c.VCode), DataList = cmdWithServers.Select(c => new KvPair { Key = c.Cmd, Value = c.Server }).ToList() }; context.Flush <CmdServer>(result); } else { context.Flush(); } }