HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -3,10 +3,8 @@
using System.IO;
using System.Net;
using System.Text;
using HDL_ON.DAL.Mqtt;
using HDL_ON.Entity;
using Newtonsoft.Json.Linq;
using Shared;
namespace HDL_ON.DAL.Server
{
@@ -112,15 +110,15 @@
        {
            var requestJson = HttpUtil.GetSignRequestJson(new RefreshTokenObj()
            {
                refreshToken = UserInfo.Current.refreshToken,
                refreshToken = UserInfo.Current.RefreshToken,
            });
            var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_Login, requestJson);
            if (revertObj.Code.ToUpper() == StateCode.SUCCESS)
            {
                var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes>(revertObj.Data.ToString());
                UserInfo.Current.loginTokenString = revertData.headerPrefix + revertData.accessToken;
                UserInfo.Current.refreshToken = revertData.refreshToken;
                UserInfo.Current.lastTime = DateTime.Now;
                UserInfo.Current.LoginTokenString = revertData.headerPrefix + revertData.accessToken;
                UserInfo.Current.RefreshToken = revertData.refreshToken;
                UserInfo.Current.LastTime = DateTime.Now;
                UserInfo.Current.SaveUserInfo();
                return true;
            }
@@ -408,9 +406,7 @@
        /// <returns></returns>
        public string UpdataUserHeadImage(string fileName)
        {
            FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
            byte[] bytes = new byte[fs.Length];
            fs.Read(bytes, 0, bytes.Length);
            byte[] bytes = Shared.IO.FileUtils.ReadFile(fileName);
            var revertObj = HttpUtil.RequestHttpsUpload(RestSharp.Method.POST, NewAPI.API_POST_Head_Upload, bytes);
            return revertObj.Code;
        }
@@ -460,7 +456,7 @@
        /// </summary>
        public string GetHomePager(HomeTypeEnum homeType = HomeTypeEnum.ALL)
        {
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new GetHomeListObj() { homeType = homeType.ToString() });
            var requestJson = HttpUtil.GetSignRequestJson(new GetHomeListObj() { homeType = homeType.ToString() });
            var resultObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_Gethomepager, requestJson);
            if (resultObj.Code == StateCode.SUCCESS)
            {
@@ -506,6 +502,9 @@
                    }
                    DB_ResidenceData.residenceData.SaveResidenceData();
                    UserInfo.Current.SaveUserInfo();
                    //刷新一次住宅网关
                    GetHomeGatewayList();
                }
            }
@@ -607,47 +606,48 @@
                requestObj.Address = editName;
            }
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
            var requestJson = HttpUtil.GetSignRequestJson(requestObj);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Home_UpdateHome, requestJson);
        }
        /// <summary>
        /// 获取刷新当前住宅网关接口
        /// 获取刷新当前住宅的网关列表
        /// </summary>
        public void GetHomeGatewayList()
        {
            if (string.IsNullOrEmpty(DB_ResidenceData.residenceData.residecenInfo.RegionID)) return;
            var nowhomeId = DB_ResidenceData.residenceData.residecenInfo.RegionID;
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new HomeIdObj() { homeId = nowhomeId });
            var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_GetGatewayList, requestJson);
            if (revertObj.Code == StateCode.SUCCESS)
            try
            {
                var mHomeGatewayRes = Newtonsoft.Json.JsonConvert.DeserializeObject<List<HomeGatewayInfo>>(revertObj.Data.ToString());
                if (nowhomeId == DB_ResidenceData.residenceData.residecenInfo.RegionID)
                if (string.IsNullOrEmpty(DB_ResidenceData.residenceData.residecenInfo.RegionID)) return;
                var nowhomeId = DB_ResidenceData.residenceData.residecenInfo.RegionID;
                var requestJson = HttpUtil.GetSignRequestJson(new HomeIdObj() { homeId = nowhomeId });
                var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_GetGatewayList, requestJson);
                if (revertObj.Code == StateCode.SUCCESS)
                {
                    if (mHomeGatewayRes != null)
                    var mHomeGatewayRes = Newtonsoft.Json.JsonConvert.DeserializeObject<List<HomeGatewayInfo>>(revertObj.Data.ToString());
                    if (nowhomeId == DB_ResidenceData.residenceData.residecenInfo.RegionID)
                    {
                        if (mHomeGatewayRes.Count > 0)
                        if (mHomeGatewayRes != null)
                        {
                            DB_ResidenceData.residenceData.residenceGatewayMAC = mHomeGatewayRes[0].mac;
                            if (mHomeGatewayRes.Count > 0)
                            {
                                DB_ResidenceData.residenceData.HomeGateway = mHomeGatewayRes[0];
                                DB_ResidenceData.residenceData.SaveResidenceData();
                                return;
                            }
                        }
                        else
                        {
                            DB_ResidenceData.residenceData.residenceGatewayMAC = "";
                        }
                        //其余情况清空网关信息
                        DB_ResidenceData.residenceData.HomeGateway = null;
                        DB_ResidenceData.residenceData.SaveResidenceData();
                    }
                    if (mHomeGatewayRes != null)
                    {
                        //Utlis.WriteLine ("获得当前住宅网关个数:" + mHomeGatewayRes.content.Count);
                    }
                }
                else
                {
                    //提示错误
                }
            }
            else
            catch
            {
                //提示错误
            }
        }
@@ -657,7 +657,7 @@
        /// <returns></returns>
        public ResponsePackNew GetResidenceMemberAccount()
        {
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new HomeIdObj() { homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID });
            var requestJson = HttpUtil.GetSignRequestJson(new HomeIdObj() { homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID });
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_FindAll, requestJson);
        }
@@ -672,7 +672,7 @@
                childAccountId = subaccount.childAccountId,
                homeId = subaccount.homeId
            };
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
            var requestJson = HttpUtil.GetSignRequestJson(requestObj);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Delete, requestJson);
        }
@@ -684,7 +684,7 @@
        /// <returns></returns>
        public ResponsePackNew EditSubAccountNickName(string nickName, string childAccountId)
        {
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new UpdateChildNickNameObj()
            var requestJson = HttpUtil.GetSignRequestJson(new UpdateChildNickNameObj()
            {
                homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
                childAccountId = childAccountId,
@@ -701,7 +701,7 @@
        /// <returns></returns>
        public ResponsePackNew ChangeCreateSceneState(bool isAllow, string childAccountId)
        {
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new UpdateChildAllowCreateSceneObj()
            var requestJson = HttpUtil.GetSignRequestJson(new UpdateChildAllowCreateSceneObj()
            {
                homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
                childAccountId = childAccountId,
@@ -710,115 +710,157 @@
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Update, requestJson);
        }
        #region 新数据分享
        /// <summary>
        /// 获取住宅下子账号的共享数据列表
        /// 添加分享
        /// </summary>
        /// <param name="addShareObj"></param>
        /// <returns></returns>
        public ResponsePackNew AddShareData(AddShareObj addShareObj)
        {
            var requestJson = HttpUtil.GetSignRequestJson(addShareObj);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Share_Add, requestJson);
        }
        /// <summary>
        /// 删除分享
        /// </summary>
        /// <param name="deleteShareObj"></param>
        /// <returns></returns>
        public ResponsePackNew DeleteShareData(DeleteShareObj deleteShareObj)
        {
            var requestJson = HttpUtil.GetSignRequestJson(deleteShareObj);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Share_Delete, requestJson);
        }
        /// <summary>
        /// 获取分享
        /// </summary>
        /// <param name="addShareObj"></param>
        /// <returns></returns>
        public ResponsePackNew GetShareDataByMemberAccount(string childAccountId)
        {
            //Dictionary<string, object> d = new Dictionary<string, object>();
            //d.Add("DistributedMark", memberId);
            //d.Add("HouseDistributedMark", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d);
            //return RequestHttps($"{severAddress}/ZigbeeDataShare/GetShareDataBySubAccount", jsonString, true);
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new HomeShareFindAll()
            var requestJson = HttpUtil.GetSignRequestJson(new GetShareObj()
            {
                homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
                childAccountId = childAccountId
                childAccountId = childAccountId,
            });
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Home_Share_FindAll, requestJson);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Share_GetList, requestJson);
        }
        #endregion
        /// <summary>
        /// 下载单个分享文件
        /// </summary>
        /// <returns></returns>
        public byte[] GetShareData(ShareData shareData)
        {
            //Dictionary<string, object> d = new Dictionary<string, object>();
            //d.Add("DistributedMark", memberId);
            //d.Add("HouseDistributedMark", hId);
            //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d);
            //return RequestHttps($"{severAddress}/ZigbeeDataShare/GetOneShareData", jsonString, true);
        ///// <summary>
        ///// 获取住宅下子账号的共享数据列表
        ///// </summary>
        ///// <returns></returns>
        //public ResponsePackNew GetShareDataByMemberAccount(string childAccountId)
        //{
        //    //Dictionary<string, object> d = new Dictionary<string, object>();
        //    //d.Add("DistributedMark", memberId);
        //    //d.Add("HouseDistributedMark", DB_ResidenceData.residenceData.residecenInfo.RegionID);
        //    //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d);
        //    //return RequestHttps($"{severAddress}/ZigbeeDataShare/GetShareDataBySubAccount", jsonString, true);
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new ShareFileDownObj()
            {
                homeId = shareData.homeId,
                homeShareId = shareData.id
            });
            var replaceToken = "";
            if (DB_ResidenceData.residenceData.residecenInfo.IsOthreShare)
            {
                replaceToken = DB_ResidenceData.residenceData.MasterToken;
            }
            return HttpUtil.RequestHttpsDownload(NewAPI.API_POST_Home_Share_DownOne, requestJson, null, DB_ResidenceData.residenceData.residecenInfo.regionUrl, replaceToken);
        //    var requestJson = HttpUtil.GetSignRequestJson(new HomeShareFindAll()
        //    {
        //        homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
        //        childAccountId = childAccountId
        //    });
        //    return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Home_Share_FindAll, requestJson);
        }
        //}
        /// <summary>
        /// 增加共享数据列表
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew AddShareData(ShareData shareData)
        {
            //Dictionary<string, object> d = new Dictionary<string, object>();
            //d.Add("ShareName", shareData.ShareName);
            //d.Add("HouseDistributedMark", shareData.HouseDistributedMark);
            //d.Add("ShareDataBytes", shareData.ShareDataBytes);
            //d.Add("SubAccountDistributedMark", shareData.SubAccountDistributedMark);
            //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d);
            //return RequestHttps($"{severAddress}/ZigbeeDataShare/AddShareData", jsonString, true);
        ///// <summary>
        ///// 下载单个分享文件
        ///// </summary>
        ///// <returns></returns>
        //public byte[] GetShareData(ShareData shareData)
        //{
        //    //Dictionary<string, object> d = new Dictionary<string, object>();
        //    //d.Add("DistributedMark", memberId);
        //    //d.Add("HouseDistributedMark", hId);
        //    //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d);
        //    //return RequestHttps($"{severAddress}/ZigbeeDataShare/GetOneShareData", jsonString, true);
            var queryDic = new Dictionary<string, object>();
            queryDic.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            queryDic.Add("childAccountId", shareData.childAccountId);
            queryDic.Add("fileName", shareData.fileName);
            var replaceToken = "";
            if (DB_ResidenceData.residenceData.residecenInfo.IsOthreShare)
            {
                replaceToken = DB_ResidenceData.residenceData.MasterToken;
            }
            return HttpUtil.RequestHttpsUpload(RestSharp.Method.POST, NewAPI.API_POST_Home_Share_Add, shareData.ShareDataBytes, queryDic, null, DB_ResidenceData.residenceData.residecenInfo.regionUrl, replaceToken);
        }
        //    var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new ShareFileDownObj()
        //    {
        //        homeId = shareData.homeId,
        //        homeShareId = shareData.id
        //    });
        //    var replaceToken = "";
        //    if (DB_ResidenceData.residenceData.residecenInfo.IsOthreShare)
        //    {
        //        replaceToken = DB_ResidenceData.residenceData.MasterToken;
        //    }
        //    return HttpUtil.RequestHttpsDownload(NewAPI.API_POST_Home_Share_DownOne, requestJson, null, DB_ResidenceData.residenceData.residecenInfo.regionUrl, replaceToken);
        /// <summary>
        /// 增加共享数据
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew EditShareData(ShareData shareData)
        {
            return AddShareData(shareData);
            //Dictionary<string, object> d = new Dictionary<string, object>();
            //d.Add("DistributedMark", shareData.DistributedMark);
            //d.Add("ShareName", shareData.ShareName);
            //d.Add("HouseDistributedMark", shareData.HouseDistributedMark);
            //d.Add("ShareDataBytes", shareData.ShareDataBytes);
            //d.Add("SubAccountDistributedMark", shareData.SubAccountDistributedMark);
            //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d);
            //return RequestHttps($"{severAddress}/ZigbeeDataShare/EditShareData", jsonString, true);
        }
        //}
        /// <summary>
        /// 删除共享数据
        /// </summary>
        /// <param name="shareData"></param>
        /// <returns></returns>
        public ResponsePackNew DeleteShareData(ShareData shareData)
        {
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new ShareFileDownObj()
            {
                homeId = shareData.homeId,
                homeShareId = shareData.id
            });
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Home_Share_Delete, requestJson);
            //Dictionary<string, string> d = new Dictionary<string, string>();
            //d.Add("DistributedMark", shareData.DistributedMark);
            //d.Add("HouseDistributedMark", shareData.HouseDistributedMark);
            //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d);
            //return RequestHttps($"{severAddress}/ZigbeeDataShare/DeleteShareData", jsonString, true);
        }
        ///// <summary>
        ///// 增加共享数据列表
        ///// </summary>
        ///// <returns></returns>
        //public ResponsePackNew AddShareData(ShareData shareData)
        //{
        //    //Dictionary<string, object> d = new Dictionary<string, object>();
        //    //d.Add("ShareName", shareData.ShareName);
        //    //d.Add("HouseDistributedMark", shareData.HouseDistributedMark);
        //    //d.Add("ShareDataBytes", shareData.ShareDataBytes);
        //    //d.Add("SubAccountDistributedMark", shareData.SubAccountDistributedMark);
        //    //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d);
        //    //return RequestHttps($"{severAddress}/ZigbeeDataShare/AddShareData", jsonString, true);
        //    var queryDic = new Dictionary<string, object>();
        //    queryDic.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
        //    queryDic.Add("childAccountId", shareData.childAccountId);
        //    queryDic.Add("fileName", shareData.fileName);
        //    var replaceToken = "";
        //    if (DB_ResidenceData.residenceData.residecenInfo.IsOthreShare)
        //    {
        //        replaceToken = DB_ResidenceData.residenceData.MasterToken;
        //    }
        //    return HttpUtil.RequestHttpsUpload(RestSharp.Method.POST, NewAPI.API_POST_Home_Share_Add, shareData.ShareDataBytes, queryDic, null, DB_ResidenceData.residenceData.residecenInfo.regionUrl, replaceToken);
        //}
        ///// <summary>
        ///// 增加共享数据
        ///// </summary>
        ///// <returns></returns>
        //public ResponsePackNew EditShareData(ShareData shareData)
        //{
        //    return AddShareData(shareData);
        //    //Dictionary<string, object> d = new Dictionary<string, object>();
        //    //d.Add("DistributedMark", shareData.DistributedMark);
        //    //d.Add("ShareName", shareData.ShareName);
        //    //d.Add("HouseDistributedMark", shareData.HouseDistributedMark);
        //    //d.Add("ShareDataBytes", shareData.ShareDataBytes);
        //    //d.Add("SubAccountDistributedMark", shareData.SubAccountDistributedMark);
        //    //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d);
        //    //return RequestHttps($"{severAddress}/ZigbeeDataShare/EditShareData", jsonString, true);
        //}
        ///// <summary>
        ///// 删除共享数据
        ///// </summary>
        ///// <param name="shareData"></param>
        ///// <returns></returns>
        //public ResponsePackNew DeleteShareData(ShareData shareData)
        //{
        //    var requestJson = HttpUtil.GetSignRequestJson(new ShareFileDownObj()
        //    {
        //        homeId = shareData.homeId,
        //        homeShareId = shareData.id
        //    });
        //    return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Home_Share_Delete, requestJson);
        //    //Dictionary<string, string> d = new Dictionary<string, string>();
        //    //d.Add("DistributedMark", shareData.DistributedMark);
        //    //d.Add("HouseDistributedMark", shareData.HouseDistributedMark);
        //    //string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d);
        //    //return RequestHttps($"{severAddress}/ZigbeeDataShare/DeleteShareData", jsonString, true);
        //}
        ///// <summary>
        ///// 删除子账号当前住宅的所有共享数据
        ///// </summary>
@@ -842,7 +884,7 @@
        {
            //添加子账号
            var requestObj = new ChildAddObj() { homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID, account = subAccount, nickName = nickName };
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
            var requestJson = HttpUtil.GetSignRequestJson(requestObj);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Add, requestJson);
        }
@@ -889,7 +931,7 @@
        {
            try
            {
                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new GetMqttRemoteInfoObj()
                var requestJson = HttpUtil.GetSignRequestJson(new GetMqttRemoteInfoObj()
                {
                    attachClientId = attachClientId,
                    homeType = HomeTypeEnum.BUSPRO.ToString()
@@ -923,13 +965,16 @@
#if __IOS__
                deviceType = PhoneDeviceType.IOS.ToString();
#endif
                //是否生成模式
                //是否生产模式
                bool isProduce = true;
#if DEBUG
                isProduce = false;
#endif
                if (string.IsNullOrEmpty(OnAppConfig.Instance.PushDeviceToken)) return false;
                if (string.IsNullOrEmpty(OnAppConfig.Instance.PushDeviceToken)) {
                    Utlis.WriteLine("PushDeviceToken 为空");
                    return false;
                }
                var mAddpushinfoObj = new AddpushinfoObj()
                {
@@ -937,9 +982,10 @@
                    deviceName = OnAppConfig.Instance.PhoneName,
                    deviceType = deviceType,
                    produce = isProduce,
                };
                var mAddpushinfoJson = Newtonsoft.Json.JsonConvert.SerializeObject(mAddpushinfoObj);
                //var mAddpushinfoJson = Newtonsoft.Json.JsonConvert.SerializeObject(mAddpushinfoObj);
                var mAddpushinfoJson = HttpUtil.GetSignRequestJson(mAddpushinfoObj);
                var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_PushSerivce_AddToken, mAddpushinfoJson);
                if (revertObj.Code == StateCode.SUCCESS)
                {
@@ -950,14 +996,15 @@
                        {
                            OnAppConfig.Instance.PushId = pushId;
                            OnAppConfig.Instance.SaveUserConfig();
                            return true;
                        }
                    }
                    Utlis.WriteLine("AddToken 成功");
                }
                else
                {
                    Utlis.WriteLine("AddToken 失败");
                    //Utlis.WriteLine("AddToken 失败");
                }
                return false;
            }
@@ -967,15 +1014,31 @@
            }
        }
        /// <summary>
        /// 查询推送信息列表
        /// </summary>
        /// <param name="queryType"></param>
        /// <returns></returns>
        public ResponsePackNew PushSerivceGetpushmessagelist()
        public ResponsePackNew PushSerivceGetPushmessagelist(int queryType = 0)
        {
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new GetMessageListObj()
            var pushType = "";
            if (queryType == 1)
            {
                pushId = OnAppConfig.Instance.PushId
                pushType = PushType.Default.ToString();
            } else if (queryType == 1)
            {
                pushType = PushType.Alarm.ToString();
            }
            else if (queryType == 2)
            {
                pushType = PushType.Prompt.ToString();
            }
            var requestJson = HttpUtil.GetSignRequestJson(new GetMessageListObj()
            {
                pushId = OnAppConfig.Instance.PushId,
                pushType = pushType
            });
            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_PushSerivce_Getpushmessagelist, requestJson);
        }
@@ -988,7 +1051,7 @@
        {
            if (string.IsNullOrEmpty(OnAppConfig.Instance.PushId)) return false;
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new PushIdObj()
            var requestJson = HttpUtil.GetSignRequestJson(new PushIdObj()
            {
                pushId = OnAppConfig.Instance.PushId
            });
@@ -1014,7 +1077,7 @@
            if (string.IsNullOrEmpty(OnAppConfig.Instance.PushId)) return false;
            try
            {
                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new PushIdObj() {
                var requestJson = HttpUtil.GetSignRequestJson(new PushIdObj() {
                    pushId = OnAppConfig.Instance.PushId
                });
               
@@ -1046,7 +1109,7 @@
            try
            {
                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new PushIdObj()
                var requestJson = HttpUtil.GetSignRequestJson(new PushIdObj()
                {
                    pushId = OnAppConfig.Instance.PushId
                });
@@ -1078,7 +1141,7 @@
            try
            {
                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new PushMsgIdObj()
                var requestJson = HttpUtil.GetSignRequestJson(new PushMsgIdObj()
                {
                    msgId = msgId
                });
@@ -1111,7 +1174,7 @@
            try
            {
                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(new PushMsgIdObj()
                var requestJson = HttpUtil.GetSignRequestJson(new PushMsgIdObj()
                {
                    msgId = msgId
                });
@@ -1123,7 +1186,7 @@
                }
                else
                {
                    IMessageCommon.Current.ShowErrorInfoAlter(revertObj.Code);
                }
                return false;
            }
@@ -1132,6 +1195,47 @@
                return false;
            }
        }
        /// <summary>
        /// 注册推送
        /// </summary>
        public void RegisteredPush()
        {
            new System.Threading.Thread(() =>
            {
                var success = PushSerivceAddPushInfo();
                if (success)
                {
                    Utlis.WriteLine("推送注册成功");
                }
                else
                {
                    Utlis.WriteLine("推送注册失败");
                }
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 注销推送
        /// </summary>
        public void SignOutPush()
        {
            new System.Threading.Thread(() =>
            {
                var success = PushSerivceSignOut();
                if (success)
                {
                    Utlis.WriteLine("推送注销成功");
                }
                else
                {
                    Utlis.WriteLine("推送注销失败");
                }
            })
            { IsBackground = true }.Start();
        }
        #endregion
        #region 检测更新
@@ -1141,33 +1245,16 @@
        /// <returns></returns>
        public ResponsePackNew CheckAppVersion()
        {
            var requestObj = new ForceUpdateObj()
            var requestObj = new AppVersionCheckObj()
            {
                LanguageType = Utlis.GetPostLanguageType()
            };
#if __IOS__
            requestObj.DeviceType = PhoneDeviceType.IOS.ToString();
#endif
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
            var requestJson = HttpUtil.GetSignRequestJson(requestObj);
            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_CheckAppVersion, requestJson);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew GetAppVersion()
        {
            var requestObj = new ForceUpdateObj()
            {
            };
#if __IOS__
            requestObj.DeviceType = PhoneDeviceType.IOS.ToString();
#endif
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_GetAppVersion, requestJson);
        }
        #endregion
@@ -1238,52 +1325,6 @@
        #endregion
        #region mqtt远程连接(旧)
        /// <summary>
        /// 请求Mqtt数据
        /// </summary>
        /// <param name="dataStringJson">请求的参数.</param>
        public ResponsePack RequestMqttInfo(string dataStringJson)
        {
            ResponsePack revertObj = null;
            var webClient = new WebClient();
            #region
            webClient.Headers.Add("CONTENT-TYPE", "application/json");
            var url = "https://global.hdlcontrol.com/ProposedProductionApi/EmqMqtt/GetConnMqttInfo";
            byte[] bytes = null;
            try
            {
                bytes = webClient.UploadData(url, Encoding.UTF8.GetBytes(dataStringJson));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                revertObj = new ResponsePack() { StateCode = "Net_Error" };
            }
            string responseString = null;
            if (bytes != null)
            {
                responseString = Encoding.UTF8.GetString(bytes);
            }
            if (responseString != null)
            {
                try
                {
                    revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(responseString);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
            return revertObj;
            #endregion
        }
        #endregion
        #region 备份部分
        ///// <summary>
@@ -1759,5 +1800,272 @@
        #endregion
        #region Kaede --设备功能——————————————————————————————————
        /// <summary>
        /// 获取设备列表
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew GetDeviceList()
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            //d.Add("roomId", DB_ResidenceData.residenceData.residecenInfo.RegionID);//可控参数,当需要分页获取,怎么知道分页总数
            //d.Add("searchType", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            //d.Add("pageSize", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            //d.Add("pageNo", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_GetDevcieList, requestJson);
        }
        /// <summary>
        /// 获取设备详情列表
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew GetDeviceInfoList(List<string> functionIds)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            d.Add("deviceIds", functionIds);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_GetDevcieInfoList, requestJson);
        }
        /// <summary>
        /// 控制设备
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew ControlDevice(List<ApiAlinkControlActionObj> actionObjs)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            d.Add("gatewayId", DriverLayer.Control.Ins.GatewayId);
            d.Add("actions", actionObjs);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_ControlDevice, requestJson);
        }
        /// <summary>
        /// 设备绑定房间
        /// </summary>
        public string BindDeviceToRoom(string deviceId,string roomId)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            d.Add("deviceIds", new List<string>() { deviceId});
            d.Add("roomIds", new List<string>() { roomId});
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_BindDeviceToRoom, requestJson).Code;
        }
        /// <summary>
        /// 设备解绑房间
        /// </summary>
        public string UnbindDeviceToRoom(string deviceId, string roomId)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            d.Add("deviceIds", new List<string>() { deviceId });
            d.Add("roomIds", new List<string>() { roomId });
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_UnbindDeviceToRoom, requestJson).Code;
        }
        /// <summary>
        /// 设备名称修改
        /// </summary>
        public string EditDeviceName(string deviceId, string deviceName)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            d.Add("deviceId", deviceId);
            d.Add("name", deviceName);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_EditDeviceName, requestJson).Code;
        }
        /// <summary>
        /// 收藏设备
        /// </summary>
        public string CollectDevice(string deviceId)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            d.Add("deviceId",new List<string>() { deviceId });
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_CollectDevice, requestJson).Code;
        }
        /// <summary>
        /// 取消收藏设备
        /// </summary>
        public string CancelCollectDevice(string deviceId)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            d.Add("deviceId", new List<string>() { deviceId });
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_CancelCollectDevice, requestJson).Code;
        }
        #endregion
        #region Kaede --场景功能--------------------------
        /// <summary>
        /// 获取场景列表
        /// 房间ID可空,默认查询住宅下所有房间
        /// </summary>
        /// <param name="roomId">房间ID</param>
        /// <returns></returns>
        public ResponsePackNew GetSceneList(string roomId = null)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            if (roomId != null)
            {
                d.Add("roomId", roomId);
            }
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_GetSecneList, requestJson);
        }
        /// <summary>
        /// 获取场景详情
        /// </summary>
        /// <param name="seceneId">场景ID</param>
        /// <returns></returns>
        public ResponsePackNew GetSceneInfo(string seceneId)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("userSceneIds",new List<string>() { seceneId });
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_GetSecneList, requestJson);
        }
        /// <summary>
        /// 添加场景
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew AddScene(Scene scene)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("scenes", new List<Scene>() { scene });
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_EditSecne, requestJson);
        }
        /// <summary>
        /// 编辑场景
        /// </summary>
        /// <param name="scene"></param>
        /// <returns></returns>
        public ResponsePackNew EditScene(Scene scene)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            d.Add("scenes", new List<Scene>() { scene });
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_EditSecne, requestJson);
        }
        /// <summary>
        /// 删除场景
        /// </summary>
        /// <returns></returns>
        public string DeleteScene(string userSceneId)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            d.Add("userSceneIds", new List<string>() { userSceneId });
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_DeleteSecne, requestJson).Code;
        }
        /// <summary>
        /// 执行场景
        /// </summary>
        /// <returns></returns>
        public string ExecuteScene(string userSceneId)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            d.Add("userSceneIds", new List<string>() { userSceneId });
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_ExecuteSecne, requestJson).Code;
        }
        /// <summary>
        /// 收藏场景
        /// </summary>
        /// <param name="userSceneId"></param>
        /// <returns></returns>
        public string CollectScene(string userSceneId)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            d.Add("userSceneIds", new List<string>() { userSceneId });
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_CollectScene, requestJson).Code;
        }
        /// <summary>
        /// 取消收藏场景
        /// </summary>
        /// <param name="userSceneId"></param>
        /// <returns></returns>
        public string CancelCollectScene(string userSceneId)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            d.Add("userSceneIds", new List<string>() { userSceneId });
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_CancelCollectScene, requestJson).Code;
        }
        #endregion
        #region Kaede --房间功能--------------------------
        /// <summary>
        /// 获取房间列表
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew GetRoomList()
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_GetRoomList, requestJson);
        }
        /// <summary>
        /// 添加房间
        /// 楼层也属于房间
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew AddRoom(List<Room> rooms)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            foreach(var room in  rooms)
            {
                Dictionary<string, string> d1 = new Dictionary<string, string>();
                d1.Add("roomName", room.name);
                d1.Add("roomType", "ROOM");
                //d1.
            }
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_AddRoom, requestJson);
        }
        /// <summary>
        /// 添加楼层
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew AddFloor()
        {
            return null;
        }
        #endregion
    }
}