protected virtual void On上报工程日志(M上报工程日志 obj)
        {
            var handler = _上报工程日志;

            if (handler != null)
            {
                handler(obj);
            }
        }
Example #2
0
        public void 新增工程日志(M上报工程日志 __日志)
        {
            var __缓存 = new Dictionary <IPEndPoint, M过滤工程日志>(_工程日志过滤);
            var __匹配 = new List <IPEndPoint>();

            foreach (var __kv in __缓存)
            {
                var __条件 = __kv.Value;
                if (!string.IsNullOrEmpty(__条件.边界类型) && __条件.边界类型 != __日志.边界类型)
                {
                    continue;
                }
                if (!string.IsNullOrEmpty(__条件.边界标识) && __条件.边界标识 != __日志.边界标识)
                {
                    continue;
                }
                if (!string.IsNullOrEmpty(__条件.方向) && __条件.方向 != __日志.方向)
                {
                    continue;
                }
                if (!string.IsNullOrEmpty(__条件.业务标识) && __条件.业务标识 != __日志.业务标识)
                {
                    continue;
                }
                if (__条件.重要性.HasValue && __条件.重要性 > __日志.重要性)
                {
                    continue;
                }
                if (__条件.关键字 != null && __条件.关键字.Count > 0 && (
                        __条件.关键字.All(q => !__日志.描述.Contains(q)) ||
                        __条件.关键字.All(q => !__日志.业务标识.Contains(q)) ||
                        __条件.关键字.All(q => !__日志.边界类型.Contains(q)) ||
                        __条件.关键字.All(q => !__日志.边界标识.Contains(q)) ||
                        (__日志.业务标签 != null && __日志.业务标签.Count > 0 && __条件.关键字.All(q => !__日志.业务标签.Contains(q)))
                        ))
                {
                    continue;
                }
                if (__条件.业务类型 != null && __条件.业务类型.Count > 0 && __条件.业务类型.All(q => __日志.业务类型 != q))
                {
                    continue;
                }
                if (__条件.业务标签 != null && __条件.业务标签.Count > 0 && __条件.业务标签.All(q => __日志.业务标签.Contains(q)))
                {
                    continue;
                }
                __匹配.Add(__kv.Key);
            }
            if (__匹配.Count > 0)
            {
                _IT服务端.触发事件(_对象名称, "上报工程日志", new Dictionary <string, string> {
                    { "事件参数", HJSON.序列化(__日志) }
                }, __匹配);
            }
        }