using Container.Common; using System.Management; using System.Net; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using System.Windows; using Container.Model; using Container.Control; using System.Windows.Data; using System.IO; using Container.ChildWindows; using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.InteropServices; using Newtonsoft.Json.Linq; using Container.Viewmodel; using Container.Business; using AForge.Video.DirectShow; using System.Collections; namespace Container.Services { class CommandInfo { public string type { get; set; } public string parameter { get; set; } } public class Building { public string buildingName; public string code; public List floors; } public class DeviceType { public string id; public string code; public string dictValue; } public class AppModel { public string code; public string filePath; public string iconFilePath; public string name; public string spaceName; public string screenInfoCode; public string startup; public string version; public bool defaultFile; } public class AppListModel { public string AppID; public string AppType; public string Code; public string Default; public string File; public string Logo; public string PackageName; public string PlatformType; public string ShelfTime; public string Startup; public string Name; public string Version; } public class AppTimeModel { public string AppCode; public string BeginTimeSlot; public string EndTimeSlot; } public class Floor { public string floorName; public string code; } //public class Screensaver //{ // public string Time; // public string ScreenType; // public string ScreenEffect; // public string ScreenType; // public string ScreenType; //} class HttpMessage { private HttpClient httpclient = new HttpClient(); private Class_Log log = new Class_Log(); private Class_Config config = new Class_Config(); App app; public HttpMessage(string httpurl = "") { app = ((App)Application.Current); } /// /// 心跳 /// public string HeatBeat() { try { if (string.IsNullOrEmpty(app.LocalIP)) { foreach (IPAddress _IPAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList) { if (_IPAddress.AddressFamily.ToString() == "InterNetwork") { app.LocalIP = _IPAddress.ToString(); } } } string sendmsg = "ip=" + app.LocalIP + "&AppNameCH=" + app.AppPlayNameCH + "&AppName=" + app.CurAppPlayName + "&ContainerVersion=" + app.Containerversion + "&AppVersion=" + app.Appversion; //// httpclient.url = app.HttpUrl + "/Api/Dev/DeviceHeartbeat"; httpclient.message = sendmsg; log.WriteLogFile(sendmsg, "DeviceHeartbeat"); log.WriteLogFile(httpclient.url, "DeviceHeartbeat"); string rev = httpclient.HttpPost(); //rev = "{\"code\":\"200\",\"msg\":\"\",\"data\":{\"isShutDown\":0,\"downTime\":\"12:00\",\"isReloaded\":0}}"; Dictionary dic = JsonConvert.DeserializeObject>(rev); if (dic["data"] != null && dic["code"].ToString() == "200") { List Commands = JsonConvert.DeserializeObject>(dic["data"].ToString()); if (Commands.Count > 0) { if (Commands.FindIndex(p => (p.type.Equals("downTime"))) != -1) { app.shutdowntime = Commands.Find(p => (p.type.Equals("downTime"))).parameter; } //if (Commands.FindIndex(p => (p.type.Equals("AppName"))) != -1) //{ // app.NowAppName = Commands.Find(p => (p.type.Equals("AppName"))).parameter; //} //else //{ //} } return "ShutDownTime"; } return ""; } catch (Exception ex) { log.WriteLogFile("发送心跳包失败" + ex.ToString(), "HttpMessageErrorLog"); return ""; } } /// /// 心跳 /// public string HeatBeatForMqtt() { try { //if (string.IsNullOrEmpty(app.LocalIP)) //{ // foreach (IPAddress _IPAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList) // { // if (_IPAddress.AddressFamily.ToString() == "InterNetwork") // { // app.LocalIP = _IPAddress.ToString(); // } // } //} //string sendmsg = "ip=" + app.LocalIP + // "&AppNameCH=" + app.AppPlayNameCH + // "&AppName=" + app.AppPlayName + // "&ContainerVersion=" + app.Containerversion + // "&AppVersion=" + app.Appversion; //// //string sendmsg = "{\"IP\":\"" + app.LocalIP + "\"}"; // Dictionary data = new Dictionary { // { "Code",app.deviceid}, // { "AppName",app.AppPlayName}, // { "AppNameCH",app.AppPlayNameCH }, // { "CurTime",DateTime.Now.ToString("G")}, // { "AppVersion",app.Appversion}, // { "ContainerVersion",app.Containerversion} //}; // KafkaProducer.Produce(Guid.NewGuid().ToString(), JsonConvert.SerializeObject(data)); Dictionary data = new Dictionary { { "AppName",app.AppPlayName}, { "AppNameCH",app.AppPlayNameCH }, { "AppVersion",app.Appversion}, { "ContainerVersion",app.Containerversion}, { "Code",app.deviceid} }; MqServer.PublishMessage("deviceheatbeat", data, Array.Empty(), false); //mqttClient.PublishAsync(app.mqttCredentialsModel.ClientId, JsonConvert.SerializeObject(data)); return ""; } catch (Exception ex) { log.WriteLogFile("发送心跳包失败" + ex.ToString(), "HttpMessageErrorLog"); return ""; } } /// /// 获取楼栋楼层信息 /// public bool GetBuildinginfo(ref string Errorlog) { try { string MethodStr = "/API/Dev/GetDeviceOptionsNew"; var data = new { MallCode = app.mallCode }; var ret = MyHttpClient.CryptPost(MethodStr, data); if (!string.IsNullOrEmpty(ret)) { var Jo = JObject.Parse(ret); string code = Jo.Value("code"); if (code == "200") { var Data = Jo.Value("data"); List itemList = Data.Value("buildings").ToObject>(); //解析漏洞信息应该是List app.Buildinginfo.Clear(); app.Buildinginfo = itemList; return true; //List itemList = JsonConvert.DeserializeObject>(Data); //string xmlstring = WriteToConfig(itemList, "1"); //if (!string.IsNullOrEmpty(xmlstring) && xmlstring != "") //{ // ScreenSavers result = CommonMethod.DeserializeXML(xmlstring); // Mylog.WriteLogFile(result.ResList.ToString(), "HttpClient"); // return result; //} } else { return false; } } else return false; //httpclient.message = ""; //string sendmsg = ""; //httpclient.url = app.HttpUrl + "/Dictionary/GetBuildings"; //httpclient.message = sendmsg; //string rev = httpclient.HttpPost(); ////rev = "{\"code\":\"200\",\"msg\":\"获取成功\",\"data\":[{\"id\":1,\"bName\":\"A栋\"},{\"id\":2,\"bName\":\"B栋\"}]}";http://192.168.0.142/api/account/Register?AccountName=af&Password=123456&ConfirmPassword=123456&NickName=阿福&AvatarSrc&Phone=18254698745&Email=123@123.com&RoleIDs=2,3,4,5&UserDefaultFile=true //Dictionary dic = JsonConvert.DeserializeObject>(rev); //if (dic["msg"] != null) // Errorlog = dic["msg"].ToString(); //if (dic["data"] != null && dic["code"].ToString() == "200") //{ // if (dic["data"].ToString().Trim().Equals("")) // return false; // string mes = dic["data"].ToString(); // //解析漏洞信息应该是List // app.Buildinginfo.Clear(); // app.Buildinginfo = JsonConvert.DeserializeObject>(dic["data"].ToString()); // return true; //} //return false; } catch (Exception ex) { if (Errorlog.Trim().Equals("")) Errorlog = "获取楼栋信息失败"; log.WriteLogFile("获取楼栋信息失败" + ex.ToString(), "HttpMessageErrorLog"); return false; } } public bool CheckMallRegKey(string RegKey, ref string MallCode, ref string Errorlog) { try { string MethodStr = "/API/Dev/GetMallByRegKey"; var data = new { RegKey = RegKey }; var ret = MyHttpClient.CryptPost(MethodStr, data); if (!string.IsNullOrEmpty(ret)) { var Jo = JObject.Parse(ret); string code = Jo.Value("code"); Errorlog = Jo.Value("msg"); if (code == "200") { MallCode = Jo.Value("data"); return true; } else { return false; } } else { Errorlog = "获取商场信息信息失败"; return false; } } catch (Exception ex) { if (Errorlog.Trim().Equals("")) Errorlog = "获取商场信息信息失败"; log.WriteLogFile("获取商场信息信息失败" + ex.ToString(), "HttpMessageErrorLog"); return false; } } public bool GetDeviceTypeList(ref string Errorlog) { try { string MethodStr = "/API/Dev/GetDictListByName"; var data = new { Name = "DeviceType" }; var ret = MyHttpClient.CryptPost(MethodStr, data); if (!string.IsNullOrEmpty(ret)) { var Jo = JObject.Parse(ret); string code = Jo.Value("code"); if (code == "200") { //var Data = JObject.Parse(Jo.Value("data")); List itemList = Jo.Value("data").ToObject>(); //解析漏洞信息应该是List app.DeviceTypeList.Clear(); app.DeviceTypeList = itemList; return true; } else return false; } else return false; } catch (Exception ex) { if (Errorlog.Trim().Equals("")) Errorlog = "获取设备类型失败"; log.WriteLogFile("获取设备类型失败" + ex.ToString(), "HttpMessageErrorLog"); return false; } } [DllImport("user32")] static extern int GetSystemMetrics(int n); /// /// 上传设备信息 /// public bool UploadDeviceInfo(string build, string floor, string deviceType, ref string Errorlog, bool update = true) { try { //获取本机的IP地址和MAC地址.... string AddressIP = string.Empty; if (update) { foreach (IPAddress _IPAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList) { if (_IPAddress.AddressFamily.ToString() == "InterNetwork") { AddressIP = _IPAddress.ToString(); } } } else { AddressIP = app.LocalIP; } ManagementClass mc; string mac = string.Empty; mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if (mo["IPEnabled"].ToString() == "True") mac = mo["MacAddress"].ToString(); } while (mac.IndexOf(":") >= 0) mac = mac.Remove(mac.IndexOf(":"), 1); //if (string.IsNullOrEmpty(app.deviceid)) //{ // log.WriteLogFile("设备信息上传失败:deviceid为空", "HttpMessageErrorLog"); // return false; //} if (string.IsNullOrEmpty(app.devicemark)) { app.devicemark = System.Net.Dns.GetHostName(); //return false; } bool isSound = IsSound(); bool isVideo = IsVideo(); string MethodStr = "/API/Dev/AddDevice"; var data = new { MallCode = app.mallCode, IP = AddressIP, MAC = mac, ScreenInfo = app.ScreenWidth + "*" + app.ScreenHeight + " " + (app.ScreenWidth > app.ScreenHeight ? "横屏" : "竖屏"), Building = build, Floor = floor, DevNum = app.devicemark, SystemType = "Windows", DeviceType = deviceType, Code = app.deviceid, Version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(), HardWare = (isSound ? "麦克风;" : "") + (isVideo ? "摄像头;" : "") }; var ret = MyHttpClient.CryptPost(MethodStr, data); log.WriteLogFile(ret, "dev"); if (!string.IsNullOrEmpty(ret)) { var Jo = JObject.Parse(ret); string code = Jo.Value("code"); Errorlog = Jo.Value("msg"); if (code == "200") { //var Data = JObject.Parse(Jo.Value("data")); app.Floor = floor.ToString(); app.BuildingID = build.ToString(); app.LocalIP = AddressIP; app.DeviceType = deviceType; var dicData = Jo.Value("data"); var oldDevice = app.deviceid; if (dicData != null) { app.deviceid = dicData["code"].ToString(); RabbitMQModel rabbit = new RabbitMQModel(); rabbit.UserName = dicData["userName"] == null ? "" : dicData["userName"].ToString(); rabbit.Password = dicData["password"] == null ? "" : dicData["password"].ToString(); rabbit.HostName = dicData["hostName"] == null ? "" : dicData["hostName"].ToString(); rabbit.Port = dicData["port"] == null ? 0 : Convert.ToInt32(dicData["port"]); app.rabbitMQ = rabbit; app.shutdowntime = dicData["shutdownTime"] == null ? "" : dicData["shutdownTime"].ToString(); app.BGFile = dicData["defaultPic"] == null ? "" : dicData["defaultPic"].ToString(); app.defaultCity= dicData["city"] == null ? "" : dicData["city"].ToString(); if (!string.IsNullOrEmpty(app.BGFile)) { HttpClient httpClient = new HttpClient(); httpClient.DownLoadBGImage(app.BGFile, "pic"); } } if (update || oldDevice != app.deviceid) config.WriteToConfig(); return true; } else return false; } else { if (update) { return false; } else { return true; } } } catch (Exception ex) { if (Errorlog.Trim().Equals("")) Errorlog = "设备信息上传失败"; log.WriteLogFile("设备信息上传失败" + ex.ToString(), "HttpMessageErrorLog"); if (update) { return false; } else { return true; } } } private bool IsSound() { //// 获取默认音频捕捉设备 var devices = SharpDX.DirectSound.DirectSoundCapture.GetDevices(); // 枚举音频捕捉设备 if (devices.Count > 0) { return true; } else { return false; } } private bool IsVideo() { //// 获取默认音频捕捉设备 var videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); if (videoDevices.Count > 0) { return true; } else { return false; } } public bool LoadAppConfig(ref string Errorlog) { try { string MethodStr = "/API/Dev/GetDevAppList"; var data = new { DevCode = app.deviceid, MallCode=app.mallCode, Paging=0 }; var ret = MyHttpClient.CryptPost(MethodStr, data); if (!string.IsNullOrEmpty(ret)) { log.WriteLogFile(ret,"devapp"); var Jo = JObject.Parse(ret); string code = Jo.Value("code"); Class_Config con = new Class_Config(); if (code == "200") { var resultData = Jo.Value("data"); List itemList = resultData.Value("appList").ToObject>(); List appTimes = resultData.Value("appTime").ToObject>(); ArrayList list = new ArrayList(); foreach (var item in itemList) { bool flag = httpclient.DownLoadIcon(ref item.Logo); log.WriteLogFile("item.Logo" + item.Logo, "Icon"); var appModel = app.AppList.Where(i => i.Code == item.Code).FirstOrDefault(); if ((appModel == null || appModel.Version != item.Version)&&!string.IsNullOrEmpty(item.File)) { httpclient.DownLoadFiles(item.File,ref item.File); } if (!string.IsNullOrEmpty(item.Startup)&&(item.Startup.ToLower().StartsWith("https://") || item.Startup.ToLower().StartsWith("http://"))) { item.Startup = log.WriteAppStart(item.Name, item.Startup); } con.WriteToExeConfig(item); list.Add(item.Code); } var delApp = app.AppList.Where(i => !list.Contains(i.Code)).ToList(); foreach (var item in delApp) { con.RemoveExeConfig(item.Code, ref item.File, ref item.Logo, ref item.Startup); if (!string.IsNullOrEmpty(item.File)&& Directory.Exists(item.File)) { Directory.Delete(item.File); } if (!string.IsNullOrEmpty(item.Logo) && File.Exists(item.Logo)) { File.Delete(item.Logo); } if (!string.IsNullOrEmpty(item.Logo) &&File.Exists(item.Startup)) { File.Delete(item.Startup); } } con.WriteToAppTimeConfig(appTimes); //解析漏洞信息应该是List app.AppList.Clear(); app.AppList = itemList; app.AppTimeList.Clear(); app.AppTimeList = appTimes; return true; } else return false; } else return false; } catch (Exception ex) { if (Errorlog.Trim().Equals("")) Errorlog = "设备信息上传失败"; log.WriteLogFile("设备信息上传失败" + ex.ToString(), "HttpMessageErrorLog"); return false; } return false; } public bool LoadAppTimeConfig() { try { string MethodStr = "/API/Dev/GetDevAppTimeList"; var data = new { DevCode = app.deviceid, MallCode = app.mallCode, Paging = 0 }; var ret = MyHttpClient.CryptPost(MethodStr, data); if (!string.IsNullOrEmpty(ret)) { var Jo = JObject.Parse(ret); string code = Jo.Value("code"); Class_Config con = new Class_Config(); if (code == "200") { var resultData = Jo.Value("data"); List appTimes = resultData.Value("appTime").ToObject>(); con.WriteToAppTimeConfig(appTimes); app.AppTimeList.Clear(); app.AppTimeList = appTimes; return true; } else return false; } else return false; } catch (Exception ex) { log.WriteLogFile("设备信息上传失败" + ex.ToString(), "HttpMessageErrorLog"); return false; } return false; } public bool LoadScreenTime() { try { string MethodStr = "/API/Screensaver/GetScreensaver"; var data = new { MallCode = app.mallCode }; var ret = MyHttpClient.CryptPost(MethodStr, data); log.WriteLogFile(ret,"screensaver"); if (!string.IsNullOrEmpty(ret)) { var Jo = JObject.Parse(ret); string code = Jo.Value("code"); if (code == "200"||code=="201") { var dicData = Jo.Value("data"); app.screensaver.ScreenTime = string.IsNullOrEmpty(dicData["time"].ToString()) ? 30 : Convert.ToInt32(dicData["time"]); //Dictionary dicData = JsonConvert.DeserializeObject>(Jo.Value("data")); //app.screenTime = string.IsNullOrEmpty(dicData["time"].ToString()) ? 30 : Convert.ToInt32(dicData["time"]); string fileName = string.Empty; if (!string.IsNullOrEmpty(dicData["screenFilePath"].ToString())) { httpclient.DownLoadImage(dicData["screenFilePath"].ToString(), "exefile/PCScreen/config", ref fileName); } app.screensaver.ScreenType = string.IsNullOrEmpty(dicData["screenType"].ToString()) ? 0 : Convert.ToInt32(dicData["screenType"]); app.screensaver.ScreenEffect = string.IsNullOrEmpty(dicData["screenEffect"].ToString()) ? 0 : Convert.ToInt32(dicData["screenEffect"]); app.screensaver.ScreenFile = fileName; app.screensaver.EffectType = string.IsNullOrEmpty(dicData["effectType"].ToString()) ? 0 : Convert.ToInt32(dicData["effectType"]); // config.WriteToScreenConfig(dicData["screenType"].ToString(), dicData["screenEffect"].ToString(), fileName, dicData["effectType"].ToString()); return true; } } return false; } catch (Exception ex) { log.WriteLogFile("屏保时间同步失败" + ex.ToString(), "HttpMessageErrorLog"); return false; } } public bool LoadBG() { return false; //try //{ // //获取本机的IP地址和MAC地址.... // string AddressIP = string.Empty; // if (string.IsNullOrEmpty(app.LocalIP)) // { // foreach (IPAddress _IPAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList) // { // if (_IPAddress.AddressFamily.ToString() == "InterNetwork") // { // AddressIP = _IPAddress.ToString(); // } // } // } // else { // AddressIP = app.LocalIP; // } // httpclient.message = ""; // string sendmsg = "IP="+ AddressIP; // httpclient.url = app.HttpUrl + "/Container/GetContainerBGByScreen"; // httpclient.message = sendmsg; // string rev = httpclient.HttpPost(); // Dictionary dic = JsonConvert.DeserializeObject>(rev); // if (dic["data"] != null && dic["code"].ToString() == "200") // { // app.bgPath = string.IsNullOrEmpty(dic["data"].ToString())?"": dic["data"].ToString(); // if (!string.IsNullOrEmpty(app.bgPath)) // { // string filefolder = AppDomain.CurrentDomain.BaseDirectory + "/bgfile"; // try // { // if (!Directory.Exists(filefolder)) // { // DirectoryInfo directoryInfo = new DirectoryInfo(filefolder); // directoryInfo.Create(); // } // } // catch (Exception ex) // { // log.WriteLogFile(ex.ToString()); // } // HttpClient httpClient = new HttpClient(); // string newname = Directory.GetCurrentDirectory() + "/exefile/PCScreen/pic/bg.png"; // if (File.Exists(newname)) { // File.Delete(newname); // } // string fileName = ""; // httpClient.DownLoadImage(app.bgPath, "bgfile", ref fileName); // var nf = Path.Combine(newname);//将新的文件名称路径字符串结合成路径。 // File.Copy(fileName, nf);//进行文件复制,第一个参数是需要复制的文件路径,第二个参数是目标文件夹中文件路径 // //string bgName = "bg.png"; // //httpClient.DownLoadImage(app.bgPath, "exefile/PCScreen/pic", ref bgName); // if (app.pageBg == null) // { // app.pageBg = new BGPage(); // app.pageBg.LoadImage(fileName); // app.pageBg.Show(); // } // else // { // app.pageBg.LoadImage(fileName); // } // } // else { // if (app.pageBg == null) // { // app.pageBg = new BGPage(); // app.pageBg.LoadImage(""); // app.pageBg.Show(); // } // else // { // app.pageBg.LoadImage(""); // } // } // return true; // } // return false; //} //catch (Exception ex) //{ // log.WriteLogFile("设备信息上传失败" + ex.ToString(), "HttpMessageErrorLog"); // return false; //} } /// /// 下载应用程序 /// //public string DownLoadexe(List appList, ref string Errorlog) //{ // try // { // string filename = ""; // app.appUrl = app.appUrl.Replace("\\", "/"); // if (app.appUrl.Contains("/")) // filename = app.appUrl.Substring(app.appUrl.LastIndexOf("/")); // else // return ""; // //string localFile = AppDomain.CurrentDomain.BaseDirectory + "zipfile/" + filename;//本地地址 // //string Unzippath = AppDomain.CurrentDomain.BaseDirectory + "exefile/" + filename;//本地地址 // bool result = false; // string iconpath = ""; // ExeModel appModel = appList.Where(i => i.AppID == app.Appdowninfo.AppID).FirstOrDefault(); // var appDownFlag = false; // if (app.appUrl.LastIndexOf(".exe") >= 0) { // appDownFlag = httpclient.DownLoadFilesExe(appModel, app.appUrl, ref filename); // } // else { // appDownFlag = httpclient.DownLoadFiles(appModel, app.appUrl, ref filename); // } // if (appDownFlag && httpclient.DownLoadIcon(appModel,app.icourl, ref iconpath)) // { // log.WriteLogFile("iconpath:"+iconpath); // app.Appdowninfo.icopath = iconpath; // Class_Config con = new Class_Config(); // //if (app.AppUpdate == false) // //{ // result = con.WriteToExeConfig(app.Appdowninfo); // if (app.Appdowninfo.exename.ToLower().Equals(app.defaultFile.ToLower())) { // app.configstartexe =string.IsNullOrEmpty(app.Appdowninfo.exestartname)? app.Appdowninfo.exepath:(app.Appdowninfo.exepath + "/"+ app.Appdowninfo.exestartname); // } // var model = new ExeModel(); // model.AppID = app.Appdowninfo.AppID; // model.exename = app.Appdowninfo.exename; // model.exepath = app.Appdowninfo.exepath; // model.exestartname = app.Appdowninfo.exestartname; // model.icopath = app.Appdowninfo.icopath; // model.Version = app.Appdowninfo.Version; // app.NowAppList.Add(model); // //} // //else // //{ // // result = con.WriteToExeConfig(app.Appdowninfo); // //} // if (result) // return filename;//返回应用程序文件名 // else // return ""; // } // return ""; // } // catch (Exception ex) // { // log.WriteLogFile("下载文件信息失败" + ex.ToString(), "HttpMessageErrorLog"); // return ""; // } //} /// /// 上传下载状态 /// public string UpLoadDownLoadState(ref string Errorlog,string state) { try { httpclient.message = ""; httpclient.url = app.HttpUrl + "/Device/DeviceFeedback"; string sendmsg = "State=" + state + "&Type=DownloadApp" //+ app.appName + "&Parameter=" + app.appName + "&IP=" + app.LocalIP; httpclient.message = sendmsg; string rev = httpclient.HttpPost(); Dictionary dic = JsonConvert.DeserializeObject>(rev); if (dic["msg"] != null) Errorlog = dic["msg"].ToString(); if (dic["code"].ToString() == "200") { //解析楼层信息应该是List //app.Floors = JsonConvert.DeserializeObject>(dic["data"].ToString()); return ""; } return "上传失败"; } catch (Exception ex) { log.WriteLogFile("下载文件信息失败" + ex.ToString(), "HttpMessageErrorLog"); return ""; } } /// /// 上传图片 /// public string UpLoadImg(ref string Errorlog, string img, string imgname,string userName,string type) { try { if (string.IsNullOrEmpty(app.LocalIP)) { foreach (IPAddress _IPAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList) { if (_IPAddress.AddressFamily.ToString() == "InterNetwork") { app.LocalIP = _IPAddress.ToString(); } } } string sendmsg = string.Empty ; if (type.Equals("local")) { httpclient.url = app.HttpUrl + "/api/Dev/UploadScreenshot";//接口地址 sendmsg = "{\"Code\":\"" + app.deviceid + "\",\"FileName\":\"" + imgname + "\"}"; } else { httpclient.url = app.HttpUrl + "/SaasLive/Manage/UploadScreenshot";//接口地址 sendmsg = "{\"Code\":\"" + app.deviceid + "\",\"FileName\":\"" + imgname + "\",\"UserName\":\""+ userName + "\"}"; } httpclient.message = sendmsg; log.WriteLogFile(httpclient.url, "HttpMessageErrorLog"); string rev = httpclient.HttpUploadFile(httpclient.url, img, httpclient.message); Dictionary dic = JsonConvert.DeserializeObject>(rev); Errorlog = dic["msg"].ToString(); if (dic["data"] != null && dic["code"].ToString() == "200")//成功并且返回下载地址不为空 { return "true";//返回应用程序文件名 } return ""; } catch (Exception ex) { log.WriteLogFile("上传截屏信息失败" + ex.ToString(), "HttpMessageErrorLog"); return ""; } } /// /// 设置触摸屏操作 /// public bool ScreenOperSuccess(int status) { try { string MethodStr = "/API/Dev/SetOperable"; var data = new { Code = app.deviceid, Status = status }; var ret = MyHttpClient.CryptPost(MethodStr, data); if (!string.IsNullOrEmpty(ret)) { var Jo = JObject.Parse(ret); string code = Jo.Value("code"); if (code == "200") { return true; } else { return false; } } return false; } catch (Exception ex) { log.WriteLogFile("设置触摸屏操作失败" + ex.ToString(), "HttpMessageErrorLog"); return false; } } public bool LoadCurrentLive() { try { httpclient.message = ""; string sendmsg = "{\"MallCode\":\"" + app.live.MallCode + "\"}"; log.WriteLogFile(app.live.SenderID, "CurrentLiv"); httpclient.url = app.live.SenderID + "/api/Order/GetCurrentLive"; httpclient.message = sendmsg; string rev = httpclient.PostMoths(httpclient.message, httpclient.url); log.WriteLogFile(rev, "CurrentLiv"); Dictionary dic = JsonConvert.DeserializeObject>(rev); if (dic["data"] != null && dic["code"].ToString() == "200") { if (dic["data"].ToString().Trim().Equals("")) return false; string mes = dic["data"].ToString(); //解析漏洞信息应该是List //app.Buildinginfo.Clear(); log.WriteLogFile(dic["data"].ToString()); CurrentLive live = JsonConvert.DeserializeObject(dic["data"].ToString()); app.curLive = live; return true; } return false; } catch (Exception ex) { log.WriteLogFile("获取直播信息失败" + ex.ToString(), "CurrentLivErrorLog"); return false; } } } }