New file |
| | |
| | | using System; |
| | | using Shared; |
| | | using System.Collections.Generic; |
| | | using static HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod; |
| | | using HDL_ON.DAL.Server; |
| | | using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock; |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.UI.UI2.FuntionControlView.Aks.Entity; |
| | | using Newtonsoft.Json.Linq; |
| | | |
| | | namespace HDL_ON.UI.UI2.FuntionControlView.Aks |
| | | { |
| | | public class SendMethod |
| | | { |
| | | public SendMethod() |
| | | { |
| | | } |
| | | |
| | | private static SendMethod sendMethod = null; |
| | | /// <summary> |
| | | /// 获取对象 |
| | | /// </summary> |
| | | public static SendMethod Current |
| | | { |
| | | get |
| | | { |
| | | if (sendMethod == null) |
| | | { |
| | | sendMethod = new SendMethod(); |
| | | } |
| | | |
| | | return sendMethod; |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | #region ------时序器------- |
| | | /// <summary> |
| | | /// 获取时序器列表 |
| | | /// </summary> |
| | | /// <param name="deviceId">设备id</param> |
| | | /// <param name="tipType">是否需要提示,默认提示</param> |
| | | /// <returns>返回结果不会为null</returns> |
| | | public List<SequencerEntity> GetSequencerLits(string deviceId, TipType tipType = TipType.flicker) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); |
| | | d.Add("deviceId", deviceId); |
| | | var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(d, NewAPI.Api_Post_Aks_XsqList, "获取时序器列表"); |
| | | if (!this.DataChecking(responsePackNew, tipType)) |
| | | { |
| | | return new List<SequencerEntity>(); |
| | | } |
| | | var List = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SequencerEntity>>(responsePackNew.Data.ToString()); |
| | | if (List == null) |
| | | { |
| | | return new List<SequencerEntity>(); |
| | | } |
| | | return List; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 时序器执行 |
| | | /// </summary> |
| | | /// <param name="deviceId">设备id</param> |
| | | /// <param name="seqId">时序器id</param> |
| | | /// <param name="onOff">时序器开关</param> |
| | | /// <param name="tipType">是否需要提示,默认提示</param> |
| | | public bool SequencerExecute(string deviceId, string seqId, string onOff, TipType tipType = TipType.flicker) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); |
| | | d.Add("deviceId", deviceId); |
| | | d.Add("seqId", seqId);//时序器id |
| | | d.Add("onOff", onOff);//时序器开关 |
| | | //d.Add("zoneType", deviceId);//区域 |
| | | var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(d, NewAPI.Api_Post_Aks_XsqExecute, "时序器执行"); |
| | | if (!this.DataChecking(responsePackNew, tipType)) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |
| | | #region ------遥控器------- |
| | | /// <summary> |
| | | ///获取遥控器列表 |
| | | /// </summary> |
| | | /// <param name="deviceId">设备id</param> |
| | | /// <param name="tipType">是否需要提示,默认提示</param> |
| | | /// <returns>返回结果不会为null</returns> |
| | | public List<RemoteControlEntity> GetRemoteControlLits(string deviceId,TipType tipType = TipType.flicker) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); |
| | | d.Add("deviceId", deviceId); |
| | | var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(d, NewAPI.Api_Post_Aks_Controlist, "获取遥控器列表"); |
| | | if (!this.DataChecking(responsePackNew, tipType)) |
| | | { |
| | | return new List<RemoteControlEntity>(); |
| | | } |
| | | var RemoteControlEntityList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RemoteControlEntity>>(responsePackNew.Data.ToString()); |
| | | if (RemoteControlEntityList == null) |
| | | { |
| | | return new List<RemoteControlEntity>(); |
| | | } |
| | | return RemoteControlEntityList; |
| | | } |
| | | |
| | | /// <summary> |
| | | ///遥控器按键执行 |
| | | /// </summary> |
| | | /// <param name="deviceId">设备id</param> |
| | | /// <param name="rcId">遥控器id</param> |
| | | /// <param name="keypad"><按键标识/param> |
| | | /// <param name="tipType">是否需要提示,默认提示</param> |
| | | public bool KeypadExecute(string deviceId, string rcId, string keypad, TipType tipType = TipType.flicker) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); |
| | | d.Add("deviceId", deviceId);//设备id |
| | | d.Add("rcId", rcId);//遥控器id |
| | | d.Add("keypad", keypad);//按键标识 |
| | | //d.Add("zoneType", deviceId);//区域 |
| | | var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(d,NewAPI.Api_Post_Aks_KeypadExecute, "遥控器按键执行"); |
| | | if (!this.DataChecking(responsePackNew, tipType)) |
| | | { |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | #region ------影库------- |
| | | /// <summary> |
| | | ///获取影库过滤分类 |
| | | /// </summary> |
| | | /// <param name="deviceId">设备id</param> |
| | | /// <param name="tipType">是否需要提示,默认提示</param> |
| | | /// <returns>返回结果不会为null</returns> |
| | | public List<FilterCategoryEntity> GetFilterCategoryLits(string deviceId, string rcId, TipType tipType = TipType.flicker) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); |
| | | d.Add("deviceId", deviceId);//设备id |
| | | d.Add("rcId", rcId);//遥控器id |
| | | //d.Add("zoneType", deviceId);//区域 |
| | | var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(d, NewAPI.Api_Post_Aks_FilterCategory, "获取影库过滤分类"); |
| | | if (!this.DataChecking(responsePackNew, tipType)) |
| | | { |
| | | return new List<FilterCategoryEntity>(); |
| | | } |
| | | var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<FilterCategoryEntity>>(responsePackNew.Data.ToString()); |
| | | if (list == null) |
| | | { |
| | | return new List<FilterCategoryEntity>(); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 影片分页获取 |
| | | /// </summary> |
| | | /// <param name="deviceId">设备id</param> |
| | | /// <param name="rcId">遥控器id</param> |
| | | /// <param name="filterCategorys">过滤数据</param> |
| | | /// <param name="pageNo">当前页</param> |
| | | /// <param name="pageSize">页数</param> |
| | | /// <param name="tipType">是否需要提示,默认提示</param> |
| | | public List<MovieLibrary> GetMovieLibraryPage(string deviceId, string rcId, List<FilterCategorys> filterCategorys, int pageNo, int pageSize, TipType tipType = TipType.flicker) |
| | | { |
| | | |
| | | JObject jObject = new JObject(); |
| | | JArray jArray = new JArray(); |
| | | jObject.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); |
| | | jObject.Add("deviceId", deviceId);//设备id |
| | | jObject.Add("rcId", rcId);//遥控器id |
| | | |
| | | foreach (var filter in filterCategorys) |
| | | { |
| | | JObject obj = new JObject(); |
| | | obj.Add("category", filter.category); |
| | | obj.Add("filterValue", filter.filterValue); |
| | | jArray.Add(obj); |
| | | } |
| | | jObject.Add("filterCategorys", jArray);//按键标识 |
| | | jObject.Add("pageNo", pageNo);//当前页 |
| | | jObject.Add("pageSize", pageSize);//页数 |
| | | //d.Add("zoneType", deviceId);//区域 |
| | | var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(jObject.ToString(), NewAPI.Api_Post_Aks_MovieLibraryPage, "影片分页获取"); |
| | | if (!this.DataChecking(responsePackNew, tipType)) |
| | | { |
| | | return new List<MovieLibrary>(); |
| | | } |
| | | var movieLibraryEntity = Newtonsoft.Json.JsonConvert.DeserializeObject<MovieLibraryEntity>(responsePackNew.Data.ToString()); |
| | | if (movieLibraryEntity == null) |
| | | { |
| | | return new List<MovieLibrary>(); |
| | | } |
| | | return movieLibraryEntity.list; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 影片详情获取 |
| | | /// </summary> |
| | | /// <param name="deviceId">设备id</param> |
| | | /// <param name="rcId">遥控器id</param> |
| | | /// <param name="movieId">影片id</param> |
| | | /// <param name="tipType">是否需要提示,默认提示</param> |
| | | public MovieLibraryInfoEntity GetMovieLibraryInfo(string deviceId, string rcId, string movieId, TipType tipType = TipType.flicker) |
| | | { |
| | | |
| | | JObject jObject = new JObject(); |
| | | jObject.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); |
| | | jObject.Add("deviceId", deviceId);//设备id |
| | | jObject.Add("rcId", rcId);//遥控器id |
| | | jObject.Add("movieId", movieId);//影片id |
| | | //d.Add("zoneType", deviceId);//区域 |
| | | |
| | | var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(jObject.ToString(), NewAPI.Api_Post_Aks_MovieLibraryInfo, "影片详情获取"); |
| | | if (!this.DataChecking(responsePackNew, tipType)) |
| | | { |
| | | return new MovieLibraryInfoEntity(); |
| | | } |
| | | var movieLibraryEntity = Newtonsoft.Json.JsonConvert.DeserializeObject<MovieLibraryInfoEntity>(responsePackNew.Data.ToString()); |
| | | if (movieLibraryEntity == null) |
| | | { |
| | | return new MovieLibraryInfoEntity(); |
| | | } |
| | | return movieLibraryEntity; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 影片收藏/取消收藏 |
| | | /// </summary> |
| | | /// <param name="deviceId">设备id</param> |
| | | /// <param name="rcId">遥控器id</param> |
| | | /// <param name="movieId">影片id</param> |
| | | /// <param name="collect">true = 收藏,false = 取消收藏</param> |
| | | /// <param name="tipType">是否需要提示,默认提示</param> |
| | | public bool IsCollect(string deviceId, string rcId, string movieId, bool collect, TipType tipType = TipType.flicker) |
| | | { |
| | | |
| | | JObject jObject = new JObject(); |
| | | jObject.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); |
| | | jObject.Add("deviceId", deviceId);//设备id |
| | | jObject.Add("rcId", rcId);//遥控器id |
| | | jObject.Add("movieId", movieId);//影片id |
| | | jObject.Add("collect", collect);//影片id |
| | | //d.Add("zoneType", deviceId);//区域 |
| | | |
| | | var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(jObject.ToString(), NewAPI.Api_Post_Aks_MovieLibraryCollect, "影片收藏"); |
| | | if (!this.DataChecking(responsePackNew, tipType)) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 收藏影片分页获取 |
| | | /// </summary> |
| | | /// <param name="deviceId">设备id</param> |
| | | /// <param name="rcId">遥控器id</param> |
| | | /// <param name="filterCategorys">过滤数据</param> |
| | | /// <param name="pageNo">当前页</param> |
| | | /// <param name="pageSize">页数</param> |
| | | /// <param name="tipType">是否需要提示,默认提示</param> |
| | | public List<MovieLibrary> GetcollectPage(string deviceId, string rcId, int pageNo, int pageSize, TipType tipType = TipType.flicker) |
| | | { |
| | | |
| | | JObject jObject = new JObject(); |
| | | jObject.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); |
| | | jObject.Add("deviceId", deviceId);//设备id |
| | | jObject.Add("rcId", rcId);//遥控器id |
| | | jObject.Add("pageNo", pageNo);//当前页 |
| | | jObject.Add("pageSize", pageSize);//页数 |
| | | //d.Add("zoneType", deviceId);//区域 |
| | | var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(jObject.ToString(), NewAPI.Api_Post_Aks_Controlist, "收藏影片分页获取"); |
| | | if (!this.DataChecking(responsePackNew, tipType)) |
| | | { |
| | | return new List<MovieLibrary>(); |
| | | } |
| | | var movieLibraryEntity = Newtonsoft.Json.JsonConvert.DeserializeObject<MovieLibraryEntity>(responsePackNew.Data.ToString()); |
| | | if (movieLibraryEntity == null) |
| | | { |
| | | return new List<MovieLibrary>(); |
| | | } |
| | | return movieLibraryEntity.list; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 影片播放 |
| | | /// </summary> |
| | | /// <param name="deviceId">设备id</param> |
| | | /// <param name="rcId">遥控器id</param> |
| | | /// <param name="movieId">影片id</param> |
| | | /// <param name="tipType">是否需要提示,默认提示</param> |
| | | public bool MovieLibraryPlay(string deviceId, string rcId, string movieId, TipType tipType = TipType.flicker) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); |
| | | d.Add("deviceId", deviceId); |
| | | d.Add("rcId", rcId);//遥控器id |
| | | d.Add("movieId", movieId);//影片id |
| | | //d.Add("zoneType", deviceId);//区域 |
| | | var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(d, NewAPI.Api_Post_Aks_MovieLibraryPlay, "影片播放"); |
| | | if (!this.DataChecking(responsePackNew, tipType)) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | ///请求服务器(与住宅有关:例如;homeId) |
| | | /// </summary> |
| | | /// <param name="o">发送数据</param> |
| | | /// <param name="api_Url">请求地址(不是绝对地址)</param> |
| | | /// <param name="tag">标记->描述接口(自定义)</param> |
| | | /// <returns></returns> |
| | | public ResponsePackNew RequestServerhomeId(object o, string api_Url, string tag, int mTimeout = 3) |
| | | { |
| | | Log($"{DateTime.Now}->发送->{tag}", api_Url, o.ToString()); |
| | | var requestJson = HttpUtil.GetSignRequestJson(o); |
| | | var r = HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout); |
| | | Log($"{DateTime.Now}->回复->{tag}", "", Newtonsoft.Json.JsonConvert.SerializeObject(r)); |
| | | return r; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// <summary> |
| | | /// 检验数据回复成功或者失败 |
| | | /// </summary> |
| | | /// <param name="responsePackNew">回复数据对象</param> |
| | | /// <param name="tipType">是否需要提示</param> |
| | | /// <returns></returns> |
| | | private bool DataChecking(ResponsePackNew responsePackNew, TipType tipType) |
| | | { |
| | | if (responsePackNew.Data == null || responsePackNew.Code != "0" || responsePackNew.Data.ToString() == "") |
| | | { |
| | | if (TipType.flicker == tipType) |
| | | { |
| | | if (responsePackNew == null) |
| | | { |
| | | responsePackNew = new ResponsePackNew { message = "没回复,请确认网络是否正常.", Code = "-1", }; |
| | | } |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | //new Tip() |
| | | //{ |
| | | // CloseTime = 1, |
| | | // Text = responsePackNew.message + "(" + responsePackNew.Code + ")", |
| | | // Direction = AMPopTipDirection.None, |
| | | //}.Show(MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1)); |
| | | CommonMethod.Current.ShowTip(responsePackNew.message + "(" + responsePackNew.Code + ")"); |
| | | }); |
| | | } |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | /// <summary> |
| | | /// 打印日志 |
| | | /// </summary> |
| | | /// <param name="tag">打印标记</param> |
| | | /// <param name="content">打印内容</param> |
| | | public void Log(string tag, string url, string content) |
| | | { |
| | | #if DEBUG |
| | | Console.WriteLine(tag + $"\r\n{url}\r\n{content}"); |
| | | #endif |
| | | } |
| | | |
| | | } |
| | | } |