Esempio n. 1
0
        public B服务器配置()
        {
            var __绝对路径 = H路径.获取绝对路径(_路径);

            _XML文档 = XDocument.Load(__绝对路径);
            _根节点   = _XML文档.Root.Element("服务器");
        }
Esempio n. 2
0
        public B项目()
        {
            var __绝对路径 = H路径.获取绝对路径(_路径);

            _XML文档 = XDocument.Load(__绝对路径);
            _根节点   = _XML文档.Root;
        }
Esempio n. 3
0
 public D命令()
 {
     if (H路径.验证文件是否存在(_文件名))
     {
         _缓存 = H序列化.FromJSON字符串 <List <M命令> >(File.ReadAllText(H路径.获取绝对路径(_文件名), Encoding.UTF8));
     }
 }
 static H业务日志()
 {
     if (!Directory.Exists(H路径.获取绝对路径("日志")))
     {
         Directory.CreateDirectory(H路径.获取绝对路径("日志"));
     }
 }
Esempio n. 5
0
        public BGPS状态配置()
        {
            var __绝对路径 = H路径.获取绝对路径(_路径);

            _XML文档 = XDocument.Load(__绝对路径);
            _根节点   = _XML文档.Root.Element("GPS状态配置");
        }
Esempio n. 6
0
        M对象 创建对象(IT服务端 __IT服务端, B资源监控 __监控, string __对象名称 = "资源监控", string __分类 = "")
        {
            var __对象 = new M对象(__对象名称, __分类);

            __对象.添加属性("配置", () => HJSON.序列化(__监控.配置), E角色.客户, null);
            __对象.添加属性("总内存", () => string.Format("{0} GB", __监控.总内存 / 1024), E角色.客户, null);

            __对象.添加方法("设置配置", __实参列表 =>
            {
                var __配置 = HJSON.反序列化 <M资源监控配置>(__实参列表["配置"]);
                __监控.配置  = __配置;
                File.WriteAllText(H路径.获取绝对路径("资源监控配置.txt"), HJSON.序列化(__配置), Encoding.UTF8);
                return("");
            }, E角色.客户, null, null);

            __对象.添加方法("查询状态", __实参列表 =>
            {
                return(HJSON.序列化(__监控.查询状态()));
            }, E角色.客户, null, null);

            __对象.添加事件("告警", E角色.客户, new List <M形参> {
                new M形参("描述", "string")
            });
            __监控.阈值告警 += __描述 =>
            {
                H业务日志.记录("进程", __描述);
                __IT服务端.触发事件(__对象名称, "告警", new Dictionary <string, string> {
                    { "描述", __描述 }
                });
            };

            return(__对象);
        }
Esempio n. 7
0
 void out互联插件_CellContentClick(object sender, DataGridViewCellEventArgs e)
 {
     if (e.RowIndex < 0)
     {
         return;
     }
     if (e.ColumnIndex == this.out互联插件.ColumnCount - 1)
     {
         var __绑定 = this.out互联插件.Rows[e.RowIndex].Tag as M插件参数;
         if (!__绑定.管理界面)
         {
             return;
         }
         var __配置程序路径 = string.Format("插件\\{0}.管理工具\\管理工具.exe", __绑定.称);
         var __绝对路径   = H路径.获取绝对路径(__配置程序路径, true);
         if (!H路径.验证文件是否存在(__绝对路径))
         {
             new F对话框_确定(__绝对路径 + "不存在, 无法配置").ShowDialog();
             return;
         }
         var __服务器地址 = _IT客户端.设备地址;
         var __日志目录  = H路径.获取绝对路径("日志");
         Process.Start(__绝对路径, string.Format("{0} {1} {2} {3}", __服务器地址.Address, __服务器地址.Port, __日志目录, __绑定.称));
     }
 }
Esempio n. 8
0
 void 加载图片(PictureBox __图片框, string __图片路径)
 {
     if (H路径.验证文件是否存在(__图片路径, true))
     {
         __图片框.ImageLocation = H路径.获取绝对路径(__图片路径, true);
     }
 }
        public static void 注册(string __程序集文件路径, string __注册类, string __注册方法 = "设置")
        {
            var __业务层注册类   = Assembly.LoadFrom(H路径.获取绝对路径(__程序集文件路径)).GetType(__注册类);
            var __业务层注册类实例 = Activator.CreateInstance(__业务层注册类);

            __业务层注册类.GetMethod(__注册方法).Invoke(__业务层注册类实例, null);
        }
Esempio n. 10
0
        private void 导入(string __文件名)
        {
            var __json = File.ReadAllText(H路径.获取绝对路径(__文件名), Encoding.UTF8);
            var __命令列表 = H序列化.FromJSON字符串 <List <M命令> >(__json);

            __命令列表.Sort(new Comparison <M命令>((m, n) => m.类别.CompareTo(n.类别)));
            this.out命令列表.Nodes.Clear();
            this.out命令列表.Tag = __文件名;

            var __所有操作系统 = __命令列表.GroupBy <M命令, string>(q => q.操作系统).OrderBy(q => q.Key);

            foreach (var __操作系统 in __所有操作系统)
            {
                var __父节点  = this.out命令列表.Nodes.Add(__操作系统.Key.IsNotNullOrEmpty() ? __操作系统.Key : "未分类");
                var __所有分组 = __操作系统.GroupBy <M命令, string>(q => q.类别).OrderBy(q => q.Key);
                foreach (var __分组 in __所有分组)
                {
                    var __子节点  = __父节点.Nodes.Add(__分组.Key.IsNotNullOrEmpty() ? __分组.Key : "未分类");
                    var __排序分组 = __分组.OrderBy(q => q.称);
                    foreach (M命令 item in __排序分组)
                    {
                        __子节点.Nodes.Add(new TreeNode(item.称)
                        {
                            Tag = item, ToolTipText = item.ToString(), BackColor = item.常用 ? Color.LightYellow : Color.White
                        });
                    }
                }
            }
        }
Esempio n. 11
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            _BFTP       = new BFTP(_客户端);
            _BFTP.开关变化 += _BFTP_状态变化;

            this.in服务器目录.Items.AddRange(new object[] { "c:", "d:", "e:", "f:", "g:", "/home" });
            File.ReadAllLines(H路径.获取绝对路径("默认FTP目录.txt"), Encoding.UTF8).ForEach(q => this.out常用列表.Nodes.Add(q.Replace('\\', '/')));

            this.do开启.Click += Do开启_Click;
            this.do关闭.Click += Do关闭_Click;
            this.do浏览.Click += Do浏览_Click;
            this.do编辑.Click += Do编辑_Click;
            this.out常用列表.NodeMouseDoubleClick += Out常用列表_NodeMouseDoubleClick;
            this.do清空.Click += (sender1, e1) => this.in客户端目录.Clear();

            var __运行中 = _BFTP.运行中;

            this.out状态.Text   = __运行中 ? "运行中" : "未启动";
            this.do开启.Enabled = !__运行中;
            this.do关闭.Enabled = __运行中;
            if (__运行中)
            {
                this.in端口.Text    = _BFTP.端口号.ToString();
                this.in服务器目录.Text = _BFTP.目录;
            }
            else
            {
                this.in端口.Text = "2121";
            }
        }
Esempio n. 12
0
        public void 保存(List <string> 已选择的路径)
        {
            var __绝对路径 = H路径.获取绝对路径(_路径);

            _根节点.RemoveAll();
            已选择的路径.ForEach(q => _根节点.Add(new XElement("已选择路径", Path.GetFileNameWithoutExtension(q))));
            _XML文档.Save(__绝对路径);
        }
Esempio n. 13
0
        public void 保存(MGPS状态配置 参数)
        {
            var __绝对路径 = H路径.获取绝对路径(_路径);

            _根节点.Element("短期未更新间隔").Value = 参数.短期未更新间隔.ToString();
            _根节点.Element("很久未更新间隔").Value = 参数.很久未更新间隔.ToString();
            _根节点.Element("停止显示间隔").Value  = 参数.停止显示间隔.ToString();
            _XML文档.Save(__绝对路径);
        }
Esempio n. 14
0
        public void 保存(M服务器 配置)
        {
            _连接配置 = 配置;
            var __绝对路径 = H路径.获取绝对路径(_路径);

            _根节点.Element("IP").Value  = 配置.务器IP.ToString();
            _根节点.Element("端口号").Value = 配置.务器端口号.ToString();
            _XML文档.Save(__绝对路径);
        }
Esempio n. 15
0
        public static void 记录(string __类别, string __描述)
        {
            var __文件 = H路径.获取绝对路径(string.Format("日志{1}业务日志 {0}.txt", DateTime.Now.Date.ToString("yyyy-MM-dd"), Program.IsWindows ? "\\" : "/"));

            File.AppendAllText(__文件, string.Format("{0} || {1} || {2}\r\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), __类别, __描述), Encoding.UTF8);
            _缓存.Add(new M业务日志 {
                时间 = DateTime.Now, 描述 = __描述, 类别 = __类别
            });
            if (_缓存.Count > 缓存上限)
            {
                _缓存.RemoveAt(0);
            }
        }
Esempio n. 16
0
        private void Do管理工具_Click(object sender, EventArgs e)
        {
            var __路径   = H程序配置.获取字符串("管理工具路径");
            var __绝对路径 = H路径.获取绝对路径(__路径);

            if (!H路径.验证文件是否存在(__绝对路径))
            {
                new F对话框_确定("管理工具不存在").ShowDialog();
                return;
            }
            var __端口号 = H程序配置.获取字符串("端口号");

            Process.Start(__绝对路径, "127.0.0.1 " + __端口号);
        }
Esempio n. 17
0
        public static void 截屏(string __文件名 = null)
        {
            if (__文件名 == null)
            {
                __文件名 = string.Format("未处理异常 {0}", DateTime.Now.ToString("yyyy年MM月dd日 HH时mm分ss秒"));
            }
            Image    myImg = new Bitmap(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height);
            Graphics g     = Graphics.FromImage(myImg);

            g.CopyFromScreen(new Point(0, 0), new Point(0, 0), Screen.AllScreens[0].Bounds.Size);
            var __保存路径 = H路径.获取绝对路径(string.Format("{0}\\{1}.jpg", 日志目录, __文件名));

            myImg.Save(__保存路径, System.Drawing.Imaging.ImageFormat.Jpeg);
        }
Esempio n. 18
0
 private void 保存()
 {
     _缓存.Sort((n, m) => {
         if (m.显示顺序.CompareTo(n.显示顺序) == 0)
         {
             return(m.文件名.CompareTo(n.文件名));
         }
         else
         {
             return(m.显示顺序.CompareTo(n.显示顺序));
         }
     });
     File.WriteAllText(H路径.获取绝对路径(_文件名), H序列化.ToJSON字符串(_缓存), Encoding.UTF8);
 }
Esempio n. 19
0
        M对象 创建对象(IT服务端 __IT服务端, B链路监控 __Ping, string __对象名称 = "链路监控", string __分类 = "")
        {
            var __对象 = new M对象(__对象名称, __分类);

            __对象.添加属性("配置", () => HJSON.序列化(__Ping.配置), E角色.客户, null);

            __对象.添加方法("查询状态", __实参列表 =>
            {
                return(HJSON.序列化(__Ping.查询状态()));
            }, E角色.客户, null, null);

            __对象.添加方法("修改配置", __实参列表 =>
            {
                var __配置 = HJSON.反序列化 <M链路监控配置>(__实参列表["配置"]);
                __Ping.修改配置(__配置);
                File.WriteAllText(H路径.获取绝对路径("链路监控配置.txt"), HJSON.序列化(__Ping.配置), Encoding.UTF8);
                return("");
            }, E角色.客户, new List <M形参>
            {
                new M形参("配置", new M元数据 {
                    结构 = E数据结构.对象, 子成员列表 = new List <M子成员> {
                        new M子成员("超时", new M元数据 {
                            类型 = "int", 描述 = "毫秒", 默认值 = "1000"
                        }),
                        new M子成员("频率", new M元数据 {
                            类型 = "int", 描述 = "毫秒/次", 默认值 = "1000"
                        }),
                        new M子成员("阈值", new M元数据 {
                            类型 = "int", 描述 = "1-10, 通过10次中成功的次数表示当前通断", 默认值 = "7"
                        }),
                        new M子成员("IP列表", new M元数据 {
                            类型 = "string", 描述 = "ip或域名", 结构 = E数据结构.单值数组
                        }),
                    }
                }),
            }, null);

            __对象.添加事件("连接变化", E角色.客户, new List <M形参> {
                new M形参("地址", "string"), new M形参("旧", "bool"), new M形参("新", "bool")
            });
            __Ping.连接变化 += (__地址, __旧, __新) =>
            {
                H业务日志.记录("链路", string.Format("{0} {1}", __地址, __新 == true ? "通" : "断"));
                __IT服务端.触发事件(__对象名称, "连接变化", new Dictionary <string, string> {
                    { "地址", __地址 }, { "旧", __旧.ToString() }, { "新", __新.ToString() }
                });
            };
            return(__对象);
        }
Esempio n. 20
0
        void do分析_Click(object sender, EventArgs e)
        {
            var __配置 = new M抓包配置
            {
                项目 = _当前项目,
                录像 = this.in来源_文件.Checked
            };

            _B项目.保存项目映射(_当前项目.称, _当前项目.当前通信设备);
            H程序配置.设置("当前项目索引", this.in项目.SelectedIndex.ToString());
            if (__配置.录像)
            {
                var __录像名 = this.in文件.Text.Trim();
                if (!File.Exists(__录像名))
                {
                    XtraMessageBox.Show("请选择文件!");
                    return;
                }
                var __放映机 = new CaptureFileReaderDevice(__录像名);
                __配置.网卡 = __放映机;
                显示抓包列表窗口(__配置);
                __放映机.Close();
            }
            else
            {
                __配置.网卡 = (ICaptureDevice)this.in网卡.SelectedItem;
                if (__配置.网卡 == null)
                {
                    XtraMessageBox.Show("请选择网卡!");
                    return;
                }
                H程序配置.设置("当前网卡索引", this.in网卡.SelectedIndex.ToString());
                var __录像目录 = H路径.获取绝对路径("录像\\");
                if (!Directory.Exists(__录像目录))
                {
                    Directory.CreateDirectory(__录像目录);
                }
                var __录像机 = new CaptureFileWriterDevice(Path.Combine(__录像目录, _当前项目.称 + " " + DateTime.Now.ToString("yyyy-MM-dd hh-mm-ss")));
                PacketArrivalEventHandler __处理抓包 = (object sender1, CaptureEventArgs e1) => __录像机.Write(e1.Packet);
                __配置.网卡.OnPacketArrival += __处理抓包;
                显示抓包列表窗口(__配置);
                __配置.网卡.OnPacketArrival -= __处理抓包;
                __录像机.Close();
            }
        }
Esempio n. 21
0
        private static void 配置日志文件输出()
        {
            var __程序集   = Assembly.GetEntryAssembly() ?? Assembly.GetExecutingAssembly();
            var __程序集名称 = __程序集.GetName();

            if (string.IsNullOrEmpty(文件名称))
            {
                文件名称 = __程序集名称.Name + "  " + __程序集名称.Version;
            }
            if (string.IsNullOrEmpty(日志目录))
            {
                日志目录 = "日志";
            }
            详细日志 = new H写文件("详细日志")
            {
                Append                     = true,
                AutoFlush                  = true,
                BaseFileName               = 文件名称 + "  详细日志",
                Location                   = LogFileLocation.Custom,
                CustomLocation             = H路径.获取绝对路径(日志目录, true),
                Delimiter                  = " || ",
                DiskSpaceExhaustedBehavior = DiskSpaceExhaustedOption.DiscardMessages,
                Encoding                   = Encoding.UTF8,
                LogFileCreationSchedule    = LogFileCreationScheduleOption.Daily,
                MaxFileSize                = 20000000,//20000000
                TraceOutputOptions         = TraceOptions.ThreadId | TraceOptions.DateTime | TraceOptions.LogicalOperationStack,
                Filter                     = new EventTypeFilter(SourceLevels.All),
            };
            错误日志 = new H写文件("错误日志")
            {
                Append                     = true,
                AutoFlush                  = true,
                BaseFileName               = 文件名称 + "  错误日志",
                Location                   = LogFileLocation.Custom,
                CustomLocation             = H路径.获取绝对路径(日志目录, true),
                Delimiter                  = " || ",
                DiskSpaceExhaustedBehavior = DiskSpaceExhaustedOption.DiscardMessages,
                Encoding                   = Encoding.UTF8,
                LogFileCreationSchedule    = LogFileCreationScheduleOption.Daily,
                MaxFileSize                = 20000000,
                TraceOutputOptions         = TraceOptions.ThreadId | TraceOptions.DateTime | TraceOptions.LogicalOperationStack,// | TraceOptions.Callstack,
                Filter                     = new EventTypeFilter(SourceLevels.Warning),
            };
        }
Esempio n. 22
0
        void do编辑设备_Click(object sender, EventArgs e)
        {
            var __文件名 = H路径.获取绝对路径("设备列表.xml");

            try
            {
                var __原内容 = File.ReadAllText(__文件名, Encoding.UTF8);
                Process.Start("notepad.exe", __文件名).WaitForExit();
                var __新内容 = File.ReadAllText(__文件名, Encoding.UTF8);
                if (__原内容 != __新内容)
                {
                    加载设备列表();
                }
            }
            catch (Exception)
            {
                throw new ApplicationException("编辑设备列表出错");
            }
        }
Esempio n. 23
0
 private void Do编辑_Click(object sender, EventArgs e)
 {
     try
     {
         var __文件名 = H路径.获取绝对路径("默认FTP目录.txt");
         var __原内容 = File.ReadAllText(__文件名, Encoding.UTF8);
         Process.Start("notepad.exe", __文件名).WaitForExit();
         var __新内容 = File.ReadAllText(__文件名, Encoding.UTF8);
         if (__原内容 != __新内容)
         {
             this.out常用列表.Nodes.Clear();
             File.ReadAllLines(H路径.获取绝对路径("默认FTP目录.txt"), Encoding.UTF8).ForEach(q => this.out常用列表.Nodes.Add(q));
         }
     }
     catch (Exception)
     {
         new F对话框_确定("编辑默认FTP目录出错").ShowDialog();
     }
 }
Esempio n. 24
0
        public void 配置()
        {
            INET.H日志输出.设置(q => Console.WriteLine(string.Format("{0}\t{1}\t{2}\n{3}\t{4}({5})\n{6}", q.等级, q.概要, q.详细, q.文件, q.方法, q.行号, q.异常)));
            _IT服务端 = FT通用访问工厂.创建服务端();

            var __命令行   = new B命令行();
            var __命令行对象 = 创建对象(_IT服务端, __命令行);

            _IT服务端.添加对象("命令行", () => __命令行对象);

            var __进程管理   = new B进程管理();
            var __进程管理对象 = 创建对象(_IT服务端, __进程管理);

            _IT服务端.添加对象("进程管理", () => __进程管理对象);

            var __FTP   = new BFTP();
            var __FTP对象 = 创建对象(_IT服务端, __FTP);

            _IT服务端.添加对象("FTP", () => __FTP对象);

            var __链路监控配置 = HJSON.反序列化 <M链路监控配置>(File.ReadAllText(H路径.获取绝对路径("链路监控配置.txt"), Encoding.UTF8));
            var __链路监控   = new B链路监控(__链路监控配置);
            var __链路监控对象 = 创建对象(_IT服务端, __链路监控);

            _IT服务端.添加对象("链路监控", () => __链路监控对象);

            var __进程监控配置 = HJSON.反序列化 <M进程监控配置>(File.ReadAllText(H路径.获取绝对路径("进程监控配置.txt"), Encoding.UTF8));
            var __进程监控   = new B进程监控(__进程监控配置);
            var __进程监控对象 = 创建对象(_IT服务端, __进程监控);

            _IT服务端.添加对象("进程监控", () => __进程监控对象);

            var __资源监控配置 = HJSON.反序列化 <M资源监控配置>(File.ReadAllText(H路径.获取绝对路径("资源监控配置.txt"), Encoding.UTF8));
            var __资源监控   = new B资源监控(__资源监控配置);
            var __资源监控对象 = 创建对象(_IT服务端, __资源监控);

            _IT服务端.添加对象("资源监控", () => __资源监控对象);

            var __业务日志对象 = 创建对象(_IT服务端);

            _IT服务端.添加对象("业务日志", () => __业务日志对象);
        }
Esempio n. 25
0
        void do编辑设备_Click(object sender, EventArgs e)
        {
            var __文件名 = H路径.获取绝对路径("设备列表.xml");

            try
            {
                var __原内容 = File.ReadAllText(__文件名);
                Process.Start("notepad.exe", __文件名).WaitForExit();
                var __新内容 = File.ReadAllText(__文件名);
                if (__原内容 != __新内容 && MessageBox.Show("需要重启程序吗?", "重启后生效", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    this.Close();
                    Process.Start(H路径.获取绝对路径("通用访问工具-命令版.exe"));
                }
            }
            catch (Exception)
            {
                throw new ApplicationException("编辑设备列表出错");
            }
        }
Esempio n. 26
0
        public static List <M部门> 获取部门()
        {
            var __webapi地址 = string.Format("http://{0}/numberbook.k", _号码簿地址);

            try
            {
                var __json = HttpClient.发送请求(__webapi地址, null, "GET", Encoding.UTF8);
                File.WriteAllText(H路径.获取绝对路径("部门数据.json", true), __json, Encoding.UTF8);
                return(H序列化.FromJSON字符串 <List <M部门> >(__json, false, 50000000) ?? new List <M部门>());
            }
            catch (Exception ex)
            {
                H日志.记录提示(string.Format("从webapi {0} 同步失败", __webapi地址), ex.Message);
            }
            if (!H路径.验证文件是否存在("部门数据.json", true))
            {
                //File.WriteAllText(H路径.获取绝对路径("部门数据.json", true), HJSON.序列化(H部门测试数据.部门列表), Encoding.UTF8);
                return(new List <M部门>());
            }
            return(H序列化.FromJSON字符串 <List <M部门> >(File.ReadAllText(H路径.获取绝对路径("部门数据.json", true), Encoding.UTF8), false, 20000000) ?? new List <M部门>());
        }
Esempio n. 27
0
        private void do仅录像_Click(object sender, EventArgs e)
        {
            var _网卡    = (ICaptureDevice)this.in网卡.SelectedItem;
            var __录像目录 = H路径.获取绝对路径("录像\\");

            if (!Directory.Exists(__录像目录))
            {
                Directory.CreateDirectory(__录像目录);
            }
            var __录像机 = new CaptureFileWriterDevice(Path.Combine(__录像目录, _当前项目.称 + " " + DateTime.Now.ToString("yyyy-MM-dd hh-mm-ss")));
            PacketArrivalEventHandler __处理抓包 = (object sender1, CaptureEventArgs e1) => __录像机.Write(e1.Packet);

            _网卡.OnPacketArrival += __处理抓包;
            _网卡.Open();
            _网卡.Filter = H公共.获取过滤表达式(_当前项目.当前通信设备);
            _网卡.StartCapture();
            XtraMessageBox.Show(string.Format("开始时间: {0}, 按OK键终止录像!", DateTime.Now), "录像中", MessageBoxButtons.OK, MessageBoxIcon.Information);
            _网卡.OnPacketArrival -= __处理抓包;
            _网卡.Close();
            __录像机.Close();
        }
Esempio n. 28
0
 /// <summary>
 /// 该类初始化时, 会自动清除"日志"目录下过期调试文件
 /// </summary>
 public static void 清除过期调试文件(string __路径, int __保留天数 = 7, int __清除频率小时 = 24)
 {
     ThreadPool.QueueUserWorkItem(
         arg =>
     {
         while (true)
         {
             //记录明细("清除调试文件");
             try
             {
                 var __日志文件路径 = H路径.获取绝对路径(__路径);
                 if (Directory.Exists(__日志文件路径))
                 {
                     var __目录 = new DirectoryInfo(__日志文件路径);
                     foreach (var __文件 in __目录.GetFiles())
                     {
                         if (__文件.LastWriteTime.AddDays(__保留天数) < DateTime.Now)
                         {
                             try
                             {
                                 __文件.Delete();
                             }
                             catch (Exception ex)
                             {
                                 记录异常(ex);
                             }
                         }
                     }
                 }
             }
             catch (Exception ex)
             {
                 //非核心线程,出错仅记录
                 记录异常(ex);
             }
             Thread.Sleep(new TimeSpan(__清除频率小时, 0, 0));//一天执行一次
         }
     });
 }
Esempio n. 29
0
        private static void 配置日志文件输出()
        {
            var __程序集名称 = Assembly.GetEntryAssembly().GetName();
            var __日志名称  = __程序集名称.Name + "  " + __程序集名称.Version + "  ";

            _详细日志 = new H日志文件输出("详细日志")
            {
                Append                     = true,
                AutoFlush                  = true,
                BaseFileName               = __日志名称 + "详细日志",
                Location                   = LogFileLocation.Custom,
                CustomLocation             = H路径.获取绝对路径("日志", true),
                Delimiter                  = " || ",
                DiskSpaceExhaustedBehavior = DiskSpaceExhaustedOption.DiscardMessages,
                Encoding                   = Encoding.UTF8,
                LogFileCreationSchedule    = LogFileCreationScheduleOption.Daily,
                MaxFileSize                = 20000000,
                TraceOutputOptions         = TraceOptions.ThreadId | TraceOptions.DateTime | TraceOptions.LogicalOperationStack,
                Filter                     = new EventTypeFilter(SourceLevels.All),
            };
            Trace.Listeners.Add(_详细日志);
            _错误日志 = new H日志文件输出("错误日志")
            {
                Append                     = true,
                AutoFlush                  = true,
                BaseFileName               = __日志名称 + "错误日志",
                Location                   = LogFileLocation.Custom,
                CustomLocation             = H路径.获取绝对路径("日志", true),
                Delimiter                  = " || ",
                DiskSpaceExhaustedBehavior = DiskSpaceExhaustedOption.DiscardMessages,
                Encoding                   = Encoding.UTF8,
                LogFileCreationSchedule    = LogFileCreationScheduleOption.Daily,
                MaxFileSize                = 20000000,
                TraceOutputOptions         = TraceOptions.ThreadId | TraceOptions.DateTime | TraceOptions.LogicalOperationStack | TraceOptions.Callstack,
                Filter                     = new EventTypeFilter(SourceLevels.Warning),
            };
            Trace.Listeners.Add(_错误日志);
        }
Esempio n. 30
0
        public Dictionary <string, bool> 查询()
        {
            var __结果   = new Dictionary <string, bool>();
            var __地图目录 = H路径.获取绝对路径("离线地图");

            if (!H路径.验证目录是否存在(__地图目录))
            {
                return(__结果);
            }
            var __地图文件列表 = Directory.GetFiles(__地图目录, "*.gmdb");

            if (__地图文件列表.Length == 0)
            {
                return(__结果);
            }
            foreach (var __文件路径 in __地图文件列表)
            {
                __结果[__文件路径] = false;
            }

            var __复制对象 = __结果.DeepClone();

            foreach (var xElement in _根节点.Elements("已选择路径"))
            {
                var __已选择文件 = xElement.Value;
                foreach (var kv in __复制对象)
                {
                    var __文件路径 = kv.Key;
                    var __文件名  = Path.GetFileNameWithoutExtension(__文件路径);
                    if (__文件名 == __已选择文件)
                    {
                        __结果[__文件路径] = true;
                    }
                }
            }
            return(__结果);
        }