public static void 发短信(string __号码, bool __组号码, string __内容) { var __webapi地址 = string.Format("http://{0}/sendmessage.k", _号码簿地址); try { HttpClient.发送请求(__webapi地址, new Dictionary <string, string> { { "号码", __号码 }, { "组号码", __组号码.ToString() }, { "内容", __内容 } }, "POST", Encoding.UTF8); } catch (Exception ex) { H日志.记录提示(string.Format("从webapi {0} 发短信失败", __webapi地址), ex.Message); throw new ApplicationException("发短信失败,服务不存在"); } }
public bool 存在GIS数据库(string __账号, string __密码, string __数据源, string __数据库名称) { var __字符串 = 生成连接字符串(__账号, __密码, __数据源).ToString(); try { return(H限时执行.执行(() => { using (var __连接 = new SqlConnection(__字符串)) { __连接.Open(); return new SqlCommand("select * from [master].[dbo].[sysdatabases] where [name]='" + __数据库名称 + "'", __连接).ExecuteScalar() != null; } }, 5000)); } catch (Exception ex) { H日志.记录提示(__字符串, ex.Message); return(false); } }
public bool 连接SQLSERVER(string __账号, string __密码, string __数据源) { var __字符串 = 生成连接字符串(__账号, __密码, __数据源).ToString(); try { return(H限时执行.执行(() => { using (var __连接 = new SqlConnection(__字符串)) { H限时执行.执行(() => __连接.Open(), 5000); return true; } }, 5000)); } catch (Exception ex) { H日志.记录提示(__字符串, ex.Message); return(false); } }
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部门>()); }
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"}}, }); }
public void 初始化() { var __路径 = Path.Combine(Path.GetDirectoryName(Assembly.GetAssembly(typeof(B插件)).Location), "插件"); if (!Directory.Exists(__路径)) { H日志.记录错误("插件目录不存在"); return; } var __子目录 = Directory.GetDirectories(__路径); if (__子目录.Length == 0) { H日志.记录错误("无任何插件"); return; } 配置通用访问("插件"); H日志.记录提示("开始加载插件"); var __插件配置 = HJSON.反序列化 <List <M插件配置> >(H程序配置.获取字符串("插件配置")); Action <string, string> __记录日志 = (__插件名称, __内容) => _IB日志.增加(new DTO.日志.M日志 { 描述 = __内容, 时间 = DateTime.Now, 类别 = __插件名称 }); var __输入插件 = new List <IPluginGPS输入>(); var __输出插件 = new List <IPluginGPS输出>(); for (int i = 0; i < __子目录.Length; i++) { var __目录 = new DirectoryInfo(__子目录[i]).Name; var __入口路径 = Path.Combine(__子目录[i], __目录 + ".dll"); if (!File.Exists(__入口路径)) { continue; } var __输入实例 = H反射.获取实例 <IPluginGPS输入>(__入口路径); if (__输入实例 != null) { __输入插件.Add(__输入实例); var __启用 = 查询启用(__插件配置, __目录); _所有插件.Add(new M插件参数 { 描述 = __输入实例.接口描述, 称 = __输入实例.接口名称, 启用 = __启用, 管理界面 = __输入实例.管理界面, 目录 = __目录 }); if (__启用) { _输入插件列表.Add(__输入实例); } __输入实例.记录日志 = __内容 => __记录日志(__输入实例.接口名称, __内容); } var __输出实例 = H反射.获取实例 <IPluginGPS输出>(__入口路径); if (__输出实例 != null) { __输出插件.Add(__输出实例); var __启用 = 查询启用(__插件配置, __目录); _所有插件.Add(new M插件参数 { 描述 = __输出实例.接口描述, 称 = __输出实例.接口名称, 启用 = __启用, 管理界面 = __输出实例.管理界面, 目录 = __目录 }); if (__启用) { _输出插件列表.Add(__输出实例); } __输出实例.记录日志 = __内容 => __记录日志(__输出实例.接口名称, __内容); } } H日志.记录提示("插件状态", H序列化.ToJSON字符串(_所有插件)); _输入插件列表.ForEach(__插件 => { __插件.GPS上报 += (__号码, __GPS) => { if (!_IBGPS过滤.判断合法(__号码, __GPS)) { return; } OnGps上报(__号码, __GPS); _输出插件列表.ForEach(k => { try { k.接收GPS(__号码, __GPS); } catch (Exception ex) { H调试.记录异常(ex); } }); }; }); _输出插件列表.ForEach(q => { q.初始化(); }); _输入插件列表.ForEach(q => { q.初始化(); }); }