using System; using HDL_ON.DAL.Server; using HDL_ON.UI.UI2.PersonalCenter.PirDevice; using System.Collections.Generic; using Shared; namespace HDL_ON.UI.UI2.FuntionControlView.Video { public class VideoMethod { /// /// 程序主入口 /// /// log父控件 /// 可视对讲对象 public void MianView(FrameLayout frameLayout, VideoClouds video) { //加载log Loading loading = new Loading(); frameLayout.AddChidren(loading); loading.Start(); List listESVideoInfo = new List(); List listCall = new List(); new System.Threading.Thread(() => { try { listESVideoInfo = VideoSend.GetVideoInfoList(video); listCall = GetCall(video.id); } catch { } finally { Application.RunOnMainThread(() => { loading.Hide(); var mainView = new VideoMainView(); MainPage.BasePageView.AddChidren(mainView); mainView.Show(listESVideoInfo, listCall, video); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }); } }) { IsBackground = true }.Start(); } /// /// 获取可视对讲 /// /// 回调函数 /// log父控件 /// 是否要显示log(默认显示tag=true) public void GetVideo(Action action, FrameLayout frame, bool tag) { VideoClouds videoObj =null; ThreadSend(null, (responsePackNew) => { try { var str = responsePackNew.Data.ToString(); videoObj = Newtonsoft.Json.JsonConvert.DeserializeObject(str); action(videoObj); } catch { action(videoObj); } }, "获取可视对讲", "fram", frame, null, tag); } /// /// 获取历史通话记录 /// /// public List GetCall(string id) { List callViewList = new List(); try { List listCall = new List(); var responsePackNew = VideoSend.GetCall(id); if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") { var jobject = Newtonsoft.Json.Linq.JObject.Parse(responsePackNew.Data.ToString()); string list = jobject["list"].ToString(); listCall = Newtonsoft.Json.JsonConvert.DeserializeObject>(list); } List strYear = new List(); //查询年份 for (int i = 0; i < listCall.Count; i++) { var call = listCall[i]; if (string.IsNullOrEmpty(call.callTime)) { continue; } var dd = Convert.ToDateTime(call.callTime); var year = dd.ToString("yyyy"); if (null == strYear.Find((c) => c == year)) { strYear.Add(year); } } //重新存储 for (int j = 0; j < strYear.Count; j++) { var year = strYear[j]; CallView callView = new CallView(); callView.year = year; for (int i = 0; i < listCall.Count; i++) { var call = listCall[i]; if (string.IsNullOrEmpty(call.callTime)) { continue; } var dd = Convert.ToDateTime(call.callTime); var y = dd.ToString("yyyy"); if (y == year) { callView.callList.Add(call); } } callViewList.Add(callView); } } catch { } return callViewList; } /// /// 发送命令线程 /// /// 数据对象 /// 回调函数 /// 判断字符 /// 判断log父控件 /// log父控件 /// log父控件 /// 是否要显示log public static void ThreadSend(VideoClouds videoObj, Action action, string str, string view, FrameLayout frame, Dialog dialog, bool tag = true) { //加载log Loading loading = new Loading(); if (view == "dialog") { dialog.AddChidren(loading); } else { frame.AddChidren(loading); } if (tag) { loading.Start(); } ResponsePackNew responsePackNew = null; new System.Threading.Thread(() => { try { if (str == "获取可视对讲") { responsePackNew = VideoSend.GetVideo(); } else if (str == "获取通话记录") { responsePackNew = VideoSend.GetCall(videoObj.id); } } catch { } finally { Application.RunOnMainThread(() => { if (tag) { loading.Hide(); } if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") { action(responsePackNew); } else { Method method = new Method(); //自定义错误提示文本 string eorroText = ""; if (str == "获取可视对讲") { } method.ErrorShow(responsePackNew, eorroText); } }); } }) { IsBackground = true }.Start(); } /// /// 随机密码6位 /// /// public static string GetCode() { Random rand = new Random(); string code = ""; for (int ctr = 0; ctr < 6; ctr++) { code += rand.Next(10).ToString(); } return code; } /// /// 获取当前时间戳 /// /// public static string GetCurrentTimeStamp() { //TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0); //return Convert.ToInt64(ts.TotalSeconds).ToString(); System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区 return ((long)(DateTime.Now - startTime).TotalSeconds).ToString(); // 相差秒数 } /// /// 获取当前时间戳 /// /// public static string GetTomorrowTimeStamp() { //当前时间的后一天 //TimeSpan ts = DateTime.Now.AddDays(1) - new DateTime(1970, 1, 1, 0, 0, 0, 0); //return Convert.ToInt64(ts.TotalSeconds).ToString(); System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区 return ((long)(DateTime.Now.AddDays(1) - startTime).TotalSeconds).ToString(); // 相差秒数 } } }