Esempio n. 1
0
        public B业务()
        {
            var __IT服务端 = H容器.取出 <IT服务端>();

            __IT服务端.添加对象("对象1", 创建工程通用访问对象);
            __IT服务端.添加对象("对象2", 创建开发通用访问对象);
        }
Esempio n. 2
0
        public void 多接口拦截()
        {
            IA __IA = H容器.接口拦截 <IA>(new BA4(), new Type[] { typeof(IC) }, (__methodBase, __target, __args) =>
            {
                if (__methodBase == typeof(IC).GetMethod("M4"))
                {
                }
                return(new Tuple <object, object[]>(100, null));
                //return new Tuple<object, object[]>(((IC)__target).M4(), null); //死循环
            });

            __IA.E1 += Console.WriteLine;
            Console.WriteLine(__IA.P1);
            __IA.P1 = 1;
            Console.WriteLine(__IA.P1);
            __IA.M1();
            __IA.M2(1, "A");
            string __arg1;
            string __arg2 = "2";

            Console.WriteLine(__IA.M3(new DTO {
                P1 = 2, P2 = "S"
            }, out __arg1, ref __arg2));
            __IA.OnE1(new DTO {
                P1 = 3, P2 = "SS"
            });
            var __result = ((IC)__IA).M4();

            Console.WriteLine(__result);
        }
Esempio n. 3
0
 static void Main(string[] args)
 {
     H调试.初始化();
     if (!Environment.UserInteractive)
     {
         var ServicesToRun = new ServiceBase[] { new Service1() };
         ServiceBase.Run(ServicesToRun);
         return;
     }
     if (System.Diagnostics.Debugger.IsAttached)
     {
         var __B控制器 = new B控制器();
         __B控制器.配置();
         __B控制器.开启();
         Application.Run(new F对话框_确定("程序处于调试模式, 按确定键关闭", "GIS服务器 - 调试模式 " + H调试.查询版本()));
         __B控制器.关闭();
         return;
     }
     HUI线程.初始化();
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);
     H容器.注入 <ID数据库, D数据库>();
     H容器.注入 <IB数据库, B数据库>();
     Application.Run(new F空窗口(new F主窗口(), "GIS服务器 - 运行环境 " + H调试.查询版本()));
 }
Esempio n. 4
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            var __1倍速  = new { 速度 = 1, 描述 = "1点/秒" };
            var __3倍速  = new { 速度 = 3, 描述 = "3点/秒" };
            var __5倍速  = new { 速度 = 5, 描述 = "5点/秒" };
            var __倍速列表 = new List <object> {
                __1倍速, __3倍速, __5倍速
            };

            this.in速度.DisplayMember = "描述";
            this.in速度.ValueMember   = "速度";
            this.in速度.DataSource    = __倍速列表;
            this.in速度.SelectedValue = 3;

            this.out进度.Enabled       = false;
            this.out进度.Minimum       = 0;
            this.out进度.Maximum       = 100;
            this.out进度.TickFrequency = 10;

            this.out地图.Controls.Add(_FGPS);

            H容器.虚方法拦截 <P回放_按频率>().处理视图(this, _初始化参数);

            this.do暂停.Click += (sender1, e1) => this.On暂停();
            this.do停止.Click += (sender1, e1) => this.On停止();
            this.do播放.Click += (sender1, e1) => this.On播放((int)this.in速度.SelectedValue);
            this.in速度.SelectedValueChanged += (sender1, e1) => this.On改变播放参数((int)this.in速度.SelectedValue);
            this.out进度.ValueChanged        += Out进度_ValueChanged;
        }
Esempio n. 5
0
        public void 开启()
        {
            HB日志.记录("系统", "开启");
            B通用命令.开启();
            H容器.取出 <IB插件>().开启();

            _IT服务端.开启();
        }
Esempio n. 6
0
        public void 属性()
        {
            H容器.注入 <IBDemo, BDemo>();
            H容器.注入 <IB属性, B属性>();
            var __对象 = H容器.取出 <IB属性>();

            Assert.AreEqual(8, __对象.IA.P1);
        }
Esempio n. 7
0
        public void 方法参数()
        {
            H容器.注入 <IBDemo, BDemo>();
            H容器.注入 <IB方法参数, B方法参数>();
            var __对象 = H容器.取出 <IB方法参数>();

            Assert.AreEqual(8, __对象.IA.P1);
        }
Esempio n. 8
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            this.Controls.Add(地图);
            显示等待("加载地图");
            加载地图(H容器.取出 <IB地图路径配置>().查询());
            隐藏等待();
        }
Esempio n. 9
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            this.tabControl1.Controls.RemoveAt(0);
            H容器.虚方法拦截 <P配置>().处理视图(this);
            this.do取消.Click += do取消_Click;
            this.do确定.Click += do确定_Click;
        }
Esempio n. 10
0
 void 设置状态()
 {
     H容器.取出 <IB状态_S>().设置属性("类别1", "属性1", () => new M业务概要 {
         当前值 = "1", 正常 = true
     });
     H容器.取出 <IB状态_S>().设置属性("类别1", "属性2", () => new M业务概要 {
         当前值 = "1", 正常 = false
     });
 }
Esempio n. 11
0
 public FGPS()
 {
     H接口注册.设置();
     InitializeComponent();
     this.地图 = new F地图 {
         Dock = DockStyle.Fill
     };
     this._PGPS = H容器.虚方法拦截 <PGPS>();
 }
Esempio n. 12
0
        public void 命名()
        {
            H容器.注入 <IBDemo, BDemo>();
            H容器.注入 <IBDemo, BDemo>(true, true, "1");
            var __A = H容器.取出 <IBDemo>();
            var __B = H容器.取出 <IBDemo>("1");

            __A.P1 = 1;
            Assert.AreEqual(1, __A.P1);
            Assert.AreEqual(8, __B.P1);
        }
Esempio n. 13
0
        void do连接_Click(object sender, EventArgs e)
        {
            var __ip   = this.inIP2.Text;
            var __port = this.in端口号.Text;
            var __最后访问 = _访问记录.Find(q => q.IP.ToString() == __ip && q.端口号.ToString() == __port);

            if (__最后访问 == null)
            {
                if (!H检测网络.IsHostAlive(__ip, int.Parse(__port), 2000))
                {
                    new F对话框_确定("连接失败").ShowDialog();
                    return;
                }
                else
                {
                    __最后访问 = new M访问记录 {
                        IP = __ip, 端口号 = int.Parse(__port)
                    };
                }
            }
            else
            {
                _访问记录.Remove(__最后访问);
            }
            _访问记录.Insert(0, __最后访问);

            H程序配置.设置("访问记录", H序列化.ToJSON字符串(_访问记录));
            H日志输出.设置(q =>
            {
                if (q.等级 <= TraceEventType.Information)
                {
                    if (q.异常 != null)
                    {
                        H日志.记录异常(q.异常, q.概要, q.详细, q.等级, q.方法, q.文件, q.行号);
                    }
                    else
                    {
                        H日志.记录(q.概要, q.等级, q.详细, q.方法, q.文件, q.行号);
                    }
                }
            });
            _IT客户端 = FT通用访问工厂.创建客户端();
            H容器.注入 <IT客户端>(_IT客户端, false);
            _IT客户端.自动重连 = true;
            _IT客户端.已断开 += q => 设置连接状态();
            _IT客户端.已连接 += 设置连接状态;
            _IT客户端.连接(new IPEndPoint(IPAddress.Parse(__ip), int.Parse(__port)));
            this.ParentForm.ShowInTaskbar = false;
            this.ParentForm.Visible       = false;
            _F主窗口 = new F空窗口(new F主窗口(), "");
            设置连接状态();
            _F主窗口.FormClosing += OnClosing;
            _F主窗口.ShowDialog();
        }
Esempio n. 14
0
        public void 更新(M基本状态 状态)
        {
            var __发生重要变化 = 验证是否发生重要变化(_基本状态.待处理问题, 状态.待处理问题);

            _基本状态.待处理问题 = 状态.待处理问题;
            _基本状态.连接设备  = 状态.连接设备;
            _基本状态.业务状态  = 状态.业务状态;
            if (__发生重要变化)
            {
                On发生了重要变化(_基本状态);
                H容器.取出 <IT服务端>().触发事件("基本状态", "发生了重要变化");
            }
        }
Esempio n. 15
0
        void 配置通用访问(string __对象名称)
        {
            if (!H容器.可取出 <IT服务端>())
            {
                return;
            }
            var __IT服务端 = H容器.取出 <IT服务端>();
            var __对象    = new M对象(__对象名称, null);

            __对象.添加方法("设置连接参数", __实参列表 =>
            {
                var __账号  = __实参列表["账号"];
                var __密码  = __实参列表["密码"];
                var __数据源 = __实参列表["数据源"];
                保存连接参数(__账号, __密码, __数据源);
                return("");
            }, E角色.工程, new List <M形参> {
                new M形参("账号", "string"), new M形参("密码", "string"), new M形参("数据源", "string")
            });
            __对象.添加属性("账号", () => 账号, E角色.工程);
            __对象.添加属性("密码", () => 密码, E角色.工程);
            __对象.添加属性("数据源", () => 地址, E角色.工程);
            __对象.添加属性("保留天数", () => H程序配置.获取字符串("保留天数"), E角色.工程);
            __对象.添加方法("设置保留天数", __实参列表 =>
            {
                var __天数 = __实参列表["天数"];
                H程序配置.设置("保留天数", __天数);
                return("");
            }, E角色.工程, new List <M形参> {
                new M形参("天数", "int")
            });
            __对象.添加方法("检测连接", __实参列表 =>
            {
                var __账号  = __实参列表["账号"];
                var __密码  = __实参列表["密码"];
                var __数据源 = __实参列表["数据源"];
                if (_D数据库.连接SQLSERVER(__账号, __密码, __数据源))
                {
                    if (_D数据库.存在GIS数据库(__账号, __密码, __数据源, 称))
                    {
                        return("连接 MS SQL SERVER 成功, GIS数据库已存在");
                    }
                    return("连接 MS SQL SERVER 成功, GIS数据库未创建");
                }
                return("连接 MS SQL SERVER 失败");
            }, E角色.工程, new List <M形参> {
                new M形参("账号", "string"), new M形参("密码", "string"), new M形参("数据源", "string")
            });

            __IT服务端.添加对象(__对象名称, () => __对象);
        }
Esempio n. 16
0
        public void 配置()
        {
            var __调试编解码 = H程序配置.获取Bool值("调试编解码");

            H日志输出.设置(q =>
            {
                if (q.等级 < TraceEventType.Information || __调试编解码)
                {
                    if (q.异常 != null)
                    {
                        H日志.记录异常(q.异常, q.概要, q.详细, q.等级, q.方法, q.文件, q.行号);
                    }
                    else
                    {
                        H日志.记录(q.概要, q.等级, q.详细, q.方法, q.文件, q.行号);
                    }
                }
            }, TraceEventType.Verbose);
            _IT服务端    = FT通用访问工厂.创建服务端();
            _IT服务端.端口 = H程序配置.获取Int32值("端口号");
            H容器.注入(_IT服务端, false);
            B通用命令.配置(_IT服务端);

            H容器.注入 <IB数据库, B数据库>();
            H容器.注入 <IB插件, B插件>();
            H容器.注入 <IB订阅, B订阅>();
            H容器.注入 <IBGPS数据, BGPS数据>();
            if (H程序配置.获取Bool值("内存数据库"))
            {
                H容器.注入 <ID数据库, D数据库_内存>();
                H容器.注入 <IDGPS数据, DGPS数据_内存>(__拦截: false);
                H容器.注入 <IB日志, B日志_内存>(__拦截: false);
            }
            else
            {
                H容器.注入 <ID数据库, D数据库>();
                H容器.注入 <IDGPS数据, DGPS数据>(__拦截: false);
                H容器.注入 <IB日志, B日志_内存>(__拦截: false); //未保存到数据库
            }
            H容器.注入 <IBGPS过滤, BGPS过滤>(__拦截: false);

            H容器.取出 <IB数据库>().初始化();
            H容器.取出 <IB订阅>().初始化();
            H容器.取出 <IB插件>().初始化();
            H容器.取出 <IBGPS数据>().初始化();
            H容器.取出 <IB日志>().初始化();
        }
Esempio n. 17
0
 public static void 设置()
 {
     if (!_已初始化)
     {
         _已初始化 = true;
     }
     else
     {
         return;
     }
     H调试.初始化();
     H容器.注入 <IB服务器配置, B服务器配置>();
     H容器.注入 <IBGPS状态配置, BGPS状态配置>();
     H容器.注入 <IB地图路径配置, B地图路径配置>();
     H容器.注入 <IB回放_按时间, B回放_按时间>();
     H容器.注入 <IB回放_按频率, B回放_按频率>();
 }
Esempio n. 18
0
        public void 生命周期()
        {
            H容器.注入 <IBDemo, BDemo1>();
            var __A = H容器.取出 <IBDemo>();
            var __B = H容器.取出 <IBDemo>();

            __A.P1 = 1;
            //Assert.AreEqual(__A, __B);
            Assert.AreEqual(__A.P1, __B.P1);

            H容器.注入 <IBDemo, BDemo2>(false);
            var __C = H容器.取出 <IBDemo>();
            var __D = H容器.取出 <IBDemo>();

            __C.P1 = 1;
            Assert.AreNotEqual(__C.P1, __D.P1);
        }
Esempio n. 19
0
        private void 配置通用访问(string __对象名称)
        {
            var __对象 = new M对象(__对象名称, null);

            __对象.添加属性("配置", () => HJSON.序列化(查询状态()), E角色.工程);
            __对象.添加方法("设置", q =>
            {
                var __配置 = HJSON.反序列化 <List <M插件配置> >(q["配置"]);
                设置(__配置);
                return(null);
            }, E角色.工程, new List <M形参> {
                new M形参("配置", new M元数据 {
                    结构 = E数据结构.对象数组, 子成员列表 = new List <M子成员>
                    {
                        new M子成员("目录", "string"), new M子成员("启用", "bool")
                    }
                })
            });
            H容器.取出 <IT服务端>().添加对象(__对象名称, () => __对象);
        }
Esempio n. 20
0
        public void 虚方法拦截()
        {
            BA3 __IA = H容器.虚方法拦截 <BA3>();

            __IA.E1 += Console.WriteLine;
            Console.WriteLine(__IA.P1);
            __IA.P1 = 1;
            Console.WriteLine(__IA.P1);
            __IA.M1();
            __IA.M2(1, "A");
            string __arg1;
            string __arg2 = "2";

            Console.WriteLine(__IA.M3(new DTO {
                P1 = 2, P2 = "S"
            }, out __arg1, ref __arg2));
            __IA.OnE1(new DTO {
                P1 = 3, P2 = "SS"
            });
        }
Esempio n. 21
0
        public void 透明拦截2()
        {
            IA __IA = H容器.透明拦截 <IA>(new BA1());

            __IA.E1 += Console.WriteLine;
            Console.WriteLine(__IA.P1);
            __IA.P1 = 1;
            Console.WriteLine(__IA.P1);
            __IA.M1();
            __IA.M2(1, "A");
            string __arg1;
            string __arg2 = "2";

            Console.WriteLine(__IA.M3(new DTO {
                P1 = 2, P2 = "S"
            }, out __arg1, ref __arg2));
            __IA.OnE1(new DTO {
                P1 = 3, P2 = "SS"
            });
        }
Esempio n. 22
0
        static void Main()
        {
            H调试.初始化();
            IT服务端 __IT服务端 = FT通用访问工厂.创建服务端();

            H容器.注入 <IT服务端>(__IT服务端);
            H容器.注入 <IB基本状态, B基本状态>();
            H容器.注入 <IB业务, B业务>();
            H容器.注入 <IB调试信息, B调试信息>();
            var __对象 = new B测试().创建对象();

            __IT服务端.添加对象("测试", () => __对象);

            __IT服务端.端口 = 8888;
            __IT服务端.开启();
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            F主窗口 = new F主窗口();
            Application.Run(F主窗口);
        }
Esempio n. 23
0
        public static void 配置(IT服务端 __IT服务端)
        {
            H容器.注入 <IB名片_S, B名片_S>(true, false, "", __IT服务端);
            H容器.注入 <IB系统_S, B系统_S>(true, false, "", __IT服务端);
            H容器.注入 <IB状态_S, B状态_S>(true, false, "", __IT服务端);
            H容器.注入 <IBFTP_S, BFTP_S>(true, false, "", __IT服务端);

            var __版本号 = H程序配置.获取字符串("版本号");

            if (string.IsNullOrEmpty(__版本号))
            {
                __版本号 = H调试.查询版本();
            }
            H容器.取出 <IB名片_S>().初始化(
                new M名片 {
                称 = "GIS服务器", 描述 = "", 版本号 = __版本号, 版本时间 = H程序配置.获取字符串("版本时间")
            },
                new List <M参数>
            {
                new M参数("IP列表", HJSON.序列化(H网络配置.获取IP配置())),
                new M参数("操作系统", Environment.OSVersion.ToString()),
                new M参数("64位系统", Environment.Is64BitOperatingSystem.ToString()),
                new M参数("登录账号", Environment.UserName),
            });
            H容器.取出 <IB状态_S>().初始化(null, DateTime.Now);
            H容器.取出 <IBFTP_S>();
            H容器.取出 <IB系统_S>().初始化(() =>
            {
                H日志.记录提示("重启");
                H服务管理.重启("GIS服务器", new TimeSpan(0, 1, 0));
            }, () =>
            {
                H日志.记录提示("关闭");
                H服务管理.关闭("GIS服务器", new TimeSpan(0, 1, 0));
            }, () => new List <M版本记录>
            {
                //new M版本记录{ 版本号 = "1.0.0.0", 修改记录 = "xxx", 标签 = new List<string>{ "a", "b"}},
                //new M版本记录{ 版本号 = "1.0.1.0", 修改记录 = "yyy", 标签 = new List<string>{ "a1", "b1"}},
            });
        }
Esempio n. 24
0
        private void 配置通用访问(string __对象名称)
        {
            var __对象 = new M对象(__对象名称, null);

            __对象.添加方法("查询", q =>
            {
                var __条件 = HJSON.反序列化 <M查询条件>(q["条件"]);
                return(HJSON.序列化(查询(__条件)));
            }, E角色.工程, new List <M形参> {
                new M形参("条件", new M元数据 {
                    结构 = E数据结构.对象, 子成员列表 = new List <M子成员>
                    {
                        new M子成员("开始时间", "string"),
                        new M子成员("结束时间", "string"),
                        new M子成员("类别", "string"),
                        new M子成员("页数", "int"),
                        new M子成员("每页数量", "int"),
                    }
                })
            });
            H容器.取出 <IT服务端>().添加对象(__对象名称, () => __对象);
        }
Esempio n. 25
0
        void 发布告警()
        {
            H容器.取出 <IB状态_S>().新增告警(new M上报告警
            {
                标识     = "1",
                产生时间   = DateTime.Now,
                来源设备类型 = "来源设备类型",
                来源设备标识 = "来源设备标识",
                重要性    = E重要性.次要,
                类别     = "类别",
                描述     = "描述",
                原因     = "原因",
                解决方案   = "解决方案"
            });

            H容器.取出 <IB状态_S>().清除告警(new M上报清除
            {
                标识     = "1",
                来源设备类型 = "来源设备类型",
                来源设备标识 = "来源设备标识",
            });
        }
Esempio n. 26
0
        public B基本状态()
        {
            //实际对象
            _基本状态    = new M基本状态();
            _基本状态.版本 = "1.0.0.0";
            _基本状态.待处理问题.Add(new M问题 {
                等级 = E重要性.普通, 内容 = "xxxx"
            });
            _基本状态.待处理问题.Add(new M问题 {
                等级 = E重要性.重要, 内容 = "yyyy"
            });
            _基本状态.开启时间 = DateTime.Now;
            _基本状态.连接设备.Add(new M设备连接 {
                IP = IPAddress.Parse("192.168.0.1"), 标识 = "X1", 类型 = "X", 连接中 = true
            });
            _基本状态.连接设备.Add(new M设备连接 {
                IP = IPAddress.Parse("192.168.0.2"), 标识 = "Y1", 类型 = "Y", 连接中 = true
            });
            _基本状态.位置   = "威尼斯";
            _基本状态.业务状态 = new Dictionary <string, string> {
                { "参数1", "参数1值" }, { "参数2", "参数2值" }
            };

            //可通信对象
            var __对象 = new M对象("基本状态", "");

            __对象.添加属性("版本", () => _基本状态.版本, E角色.所有, null);
            __对象.添加属性("位置", () => _基本状态.位置, E角色.所有, null);
            __对象.添加属性("开启时间", () => _基本状态.开启时间.ToString(), E角色.所有, null);
            __对象.添加属性("待处理问题", () => HJSON.序列化(_基本状态.待处理问题), E角色.所有, null);
            __对象.添加属性("连接设备", () => HJSON.序列化(_基本状态.连接设备), E角色.所有, null);
            __对象.添加属性("业务状态", () => HJSON.序列化(_基本状态.业务状态), E角色.所有, null);
            __对象.添加方法("重启", 参数列表 => { 重启(); return(string.Empty); }, E角色.所有, null, null);
            __对象.添加事件("发生了重要变化", E角色.所有, null);

            var __IT服务端 = H容器.取出 <IT服务端>();

            __IT服务端.添加对象("基本状态", () => __对象);
        }
Esempio n. 27
0
        public void 多接口注入()
        {
            H容器.注入 <IA, BA4>(true, false);
            IA __IA = H容器.取出 <IA>();

            __IA.E1 += Console.WriteLine;
            Console.WriteLine(__IA.P1);
            __IA.P1 = 1;
            Console.WriteLine(__IA.P1);
            __IA.M1();
            __IA.M2(1, "A");
            string __arg1;
            string __arg2 = "2";

            Console.WriteLine(__IA.M3(new DTO {
                P1 = 2, P2 = "S"
            }, out __arg1, ref __arg2));
            __IA.OnE1(new DTO {
                P1 = 3, P2 = "SS"
            });
            var __result = ((IC)__IA).M4();

            Console.WriteLine(__result);
        }
Esempio n. 28
0
 public void 关闭()
 {
     HB日志.记录("系统", "关闭");
     H容器.取出 <IB插件>().关闭();
     _IT服务端.关闭();
 }
Esempio n. 29
0
        static void Main()
        {
            H调试.初始化();
            H日志输出.设置(__日志 => H调试.记录(__日志.概要, __日志.等级, __日志.详细, __日志.方法, __日志.文件, __日志.行号), TraceEventType.Warning);
            var __服务端列表 = new List <IT服务端>();
            var __随机数   = new Random();

            for (int __端口 = 8001; __端口 <= 8001; __端口++)
            {
                #region 初始化环境
                IT服务端 __IT服务端 = FT通用访问工厂.创建服务端();
                __IT服务端.端口 = __端口;
                __服务端列表.Add(__IT服务端);
                #endregion

                #region 配置通用命令
                var __标识 = __端口.ToString();
                H容器.注入 <IB名片_S, B名片_S>(true, true, __标识, __IT服务端);
                H容器.注入 <IB系统_S, B系统_S>(true, true, __标识, __IT服务端);
                H容器.注入 <IB状态_S, B状态_S>(true, true, __标识, __IT服务端);
                H容器.注入 <IBFTP_S, BFTP_S>(true, true, __标识, __IT服务端);

                H容器.取出 <IB名片_S>(__标识).初始化(
                    new M名片 {
                    称 = "设备1", 描述 = "描述1", 版本号 = "1.0.0.0", 版本时间 = DateTime.Now.ToString()
                },
                    new List <M参数> {
                    new M参数("IP列表", "192.168.1.1,202.195.114.1"), new M参数("系统", "Windows 7")
                });
                H容器.取出 <IB状态_S>(__标识).初始化(null, DateTime.Now);
                H容器.取出 <IBFTP_S>(__标识);
                H容器.取出 <IB系统_S>(__标识).初始化(() =>
                {
                    Console.WriteLine("重启");
                }, () =>
                {
                    Console.WriteLine("关闭");
                }, () =>
                {
                    Console.WriteLine("查询版本记录");
                    return(new List <M版本记录>
                    {
                        new M版本记录 {
                            版本号 = "1.0.0.0", 修改记录 = "xxx", 标签 = new List <string> {
                                "a", "b"
                            }
                        },
                        new M版本记录 {
                            版本号 = "1.0.1.0", 修改记录 = "yyy", 标签 = new List <string> {
                                "a1", "b1"
                            }
                        },
                    });
                });

                #endregion

                #region 交互
                //H容器.取出<IBFTP_S>(__标识).开启();
                H容器.取出 <IB状态_S>(__标识).设置属性("类别1", "属性1", () => new M业务概要 {
                    类别 = "类别1", 属性 = "属性1", 当前值 = "1", 正常 = true
                });
                H容器.取出 <IB状态_S>(__标识).设置属性("类别1", "属性2", () => new M业务概要 {
                    类别 = "类别1", 属性 = "属性2", 当前值 = "1", 正常 = false
                });
                Task.Factory.StartNew(() =>
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (i % 8 < 4)
                        {
                            H容器.取出 <IB状态_S>(__标识).新增告警(new M上报告警
                            {
                                标识     = i.ToString(),
                                产生时间   = DateTime.Now,
                                来源设备类型 = "来源设备类型",
                                来源设备标识 = "来源设备标识",
                                重要性    = (通用命令.状态.E重要性)(i % 4),
                                类别     = "类别",
                                描述     = "描述",
                                原因     = "原因",
                                解决方案   = "解决方案"
                            });
                        }
                        else
                        {
                            H容器.取出 <IB状态_S>(__标识).清除告警(new M上报清除
                            {
                                标识     = (i / 8 * 8 + (8 - i % 8)).ToString(),
                                来源设备类型 = "来源设备类型",
                                来源设备标识 = "来源设备标识",
                            });
                        }
                        Thread.Sleep(1000 * __随机数.Next(3, 3));
                    }
                });

                #endregion

                //break;
            }
            __服务端列表.ForEach(q => q.开启());
            Console.WriteLine("启动完毕, 按回车键关闭");
            Console.ReadLine();
            Console.WriteLine("关闭中");
            __服务端列表.ForEach(q => q.关闭());
            Console.WriteLine("按回车键退出");
            Console.ReadLine();
        }
Esempio n. 30
0
        private static void 参考(string __标识, IT服务端 __IT服务端)
        {
            H容器.注入 <IB链路_S, B链路_S>(true, true, __标识, __IT服务端);
            H容器.注入 <IB日志_S, B日志_S>(true, true, __标识, __IT服务端);
            H容器.注入 <IB点名_S, B点名_S>(true, true, __标识, __IT服务端);

            H容器.取出 <IB点名_S>(__标识).初始化();
            H容器.取出 <IB链路_S>(__标识);
            H容器.取出 <IB状态_S>(__标识).健康状态变化 += q => H容器.取出 <IB点名_S>().发布事件(E事件.健康状态变化);
            H容器.取出 <IB点名_S>(__标识).发布事件(E事件.启动完成);
            H日志.输出通知 += (__标题, __内容, __等级, __线程) =>
            {
                var __重要性 = 通用命令.日志.E重要性.一般;
                switch (__等级)
                {
                case TraceEventType.Critical:
                case TraceEventType.Error:
                    __重要性 = 通用命令.日志.E重要性.紧急;
                    break;

                case TraceEventType.Warning:
                    __重要性 = 通用命令.日志.E重要性.紧急;
                    break;

                case TraceEventType.Information:
                    __重要性 = 通用命令.日志.E重要性.次要;
                    break;
                }
                H容器.取出 <IB日志_S>(__标识).新增开发日志(new 通用命令.日志.M上报开发日志
                {
                    标题  = __标题,
                    时间  = DateTime.Now,
                    内容  = __内容,
                    线程  = __线程,
                    重要性 = __重要性
                });
            };
            Task.Factory.StartNew(() =>
            {
                for (int i = 0; i < 100; i++)
                {
                    H容器.取出 <IB日志_S>(__标识).新增工程日志(new 通用命令.日志.M上报工程日志
                    {
                        边界类型 = "对端设备类型" + i,
                        边界标识 = "对端设备名称" + i,
                        方向   = "输入",
                        描述   = "描述" + i,
                        时间   = DateTime.Now,
                        业务标签 = new List <string> {
                            "标签" + i, "标签" + (i + 1), "标签" + (i + 1)
                        },
                        业务标识 = "业务标识" + i,
                        业务类型 = "业务类型" + i,
                        重要性  = (通用命令.日志.E重要性)(i % 4)
                    });
                    if (i % 2 == 0)
                    {
                        H容器.取出 <IB链路_S>(__标识)
                        .建立(new M链路
                        {
                            IP     = IPAddress.Parse("192.168.1.1"),
                            端口号    = 11,
                            建立连接时间 = DateTime.Now,
                            设备标识   = "设备标识1",
                            设备类型   = "设备类型1"
                        });
                        H容器.取出 <IB链路_S>(__标识)
                        .建立(new M链路
                        {
                            IP     = IPAddress.Parse("192.168.1.2"),
                            端口号    = 12,
                            建立连接时间 = DateTime.Now,
                            设备标识   = "设备标识2",
                            设备类型   = "设备类型2",
                            账号     = "k"
                        });
                    }
                    else
                    {
                        H容器.取出 <IB链路_S>(__标识).断开(new IPEndPoint(IPAddress.Parse("192.168.1.1"), 11));
                    }
                    Thread.Sleep(3000);
                }
            });
        }