Exemple #1
0
 /// <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);
     }
 }
Exemple #2
0
        /// <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();
            }
        }