From 7a23bcdf0fe5f7442aa95ec2203cd5b6670a910d Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期四, 19 十二月 2019 17:59:33 +0800
Subject: [PATCH] 2019-12-19-1

---
 ZigbeeApp/Shared/Phone/Device/Logic/Send.cs |  149 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 145 insertions(+), 4 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
index 0cce7a7..e82a359 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
@@ -380,6 +380,16 @@
                                 };
                                 conditions.Add(sInfo);
                                 break;
+                            case 7:
+                                var diliInfo = new JObject
+                                {
+                                    ["Type"] = int.Parse(dictionary["Type"]),
+                                    ["IsValid"] = int.Parse(dictionary["IsValid"]),
+                                    ["AtHome"] = int.Parse(dictionary["AtHome"]),
+                                    ["WhoSiteUId"] =dictionary["WhoSiteUId"],
+                                };
+                                conditions.Add(diliInfo);
+                                break;
                         }
                     }
                     var actions = new JArray();
@@ -711,7 +721,82 @@
         public static List<Common.Room> GetRoomList(string floorId)
         {
             return Common.Room.Lists.FindAll((obj) => obj.FloorId == floorId);
+            //var list1 = new List<Common.Room>();
+            /////鎵惧埌鏌愭ゼ灞傛埧闂村垪琛紱
+            //var list = Common.Room.Lists.FindAll((obj) => obj.FloorId == floorId);
+            //for (int i = 0; i < list.Count; i++)
+            //{
+            //    if (str == "device")
+            //    {
+            //        if (list[i].DeviceUIList.Count != 0)
+            //        {   ///杩囨护鎺夋病鏈夎澶囩殑鎴块棿
+            //            list1.Add(list[i]);
+            //        }
+            //    }
+            //    else
+            //    {
+            //        if (list[i].SceneUIList.Count != 0)
+            //        {   ///杩囨护鎺夋病鏈夊満鏅殑鎴块棿
+            //            list1.Add(list[i]);
+            //        }
+            //    }
+            //}
+            /////杩斿洖鎴块棿鍒楄〃锛�
+            //return list1;
+        }
 
+
+        /// <summary>
+        /// 鑾峰彇鍦烘櫙淇℃伅鐨勬柟娉�
+        /// </summary>
+        /// <param name="SceneId"></param>
+        /// <returns></returns>
+        public static async System.Threading.Tasks.Task<SceneUI> GetScene(int SceneId)
+        {
+            SceneUI sceneui = null;
+            return await System.Threading.Tasks.Task.Run(async () =>
+            {
+                Action<string, string> action = (topic, data) =>
+                {
+                    var gatewayID = topic.Split('/')[0];
+                    var jObjectdata = JObject.Parse(data);
+                    if (jObjectdata == null)
+                    {
+                        return;
+                    }
+
+                    if (topic == $"{gatewayID}/Scene/GetDeviceList_Respon")
+                    {
+                        sceneui = new SceneUI();
+                        sceneui.Name = jObjectdata["Data"]["ScenesName"].ToString();
+                        sceneui.Id = int.Parse(jObjectdata["Data"]["ScenesId"].ToString());
+                        
+                    }
+                };
+                var mainGateWay = ZbGateway.MainGateWay;
+                if (mainGateWay == null)
+                {
+                    Console.WriteLine("娌℃湁涓荤綉鍏�");
+                    return sceneui;
+                }
+                mainGateWay.GwResDataAction += action;
+
+                var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 806 } };
+                var jObjectdata1 = new JObject { { "ScenesId", SceneId } };
+                jObject.Add("Data", jObjectdata1);
+                mainGateWay?.Send("Scene/GetDeviceList", jObject.ToString());
+                var dateTime = DateTime.Now;
+                while ((DateTime.Now - dateTime).TotalMilliseconds < 3 * 1000)
+                {
+                    await System.Threading.Tasks.Task.Delay(100);
+                    if (sceneui!=null)
+                    {
+                        break;
+                    }
+                }
+                ZbGateway.MainGateWay.GwResDataAction -= action;
+                return sceneui;
+            });
         }
         #endregion
 
@@ -720,7 +805,7 @@
         /// <summary>
         /// 鑾峰彇鑷繁+鍏朵粬鎴愬憳淇℃伅
         /// </summary>
-        /// <param name="doorlockMac">闂ㄩ攣Mac</param>
+        /// <param name="doorlockMac">闂ㄩ攣Mac+绔彛</param>
         /// <returns></returns>
         public static async System.Threading.Tasks.Task<List<MembershipIfon>> AllMembers(string doorlockMac)
         {
@@ -731,6 +816,7 @@
             currUserIfon.CloudAccountId = Config.Instance.Guid;
             if (string.IsNullOrEmpty(UserCenter.UserCenterResourse.UserInfo.UserName))
             {
+                ///濡傛灉鏄电О涓虹┖锛屾鏃讹紝鐧婚檰璐﹀彿涓洪粯璁ゆ樀绉帮紱
                 currUserIfon.UserName = UserCenter.UserCenterResourse.UserInfo.Account;
             }
             else
@@ -739,12 +825,18 @@
             }
             foreach (var o in AllUserIfon)
             {
+                if (o.IsFreezeUser || string.IsNullOrEmpty(o.UserId))
+                {
+                    ///杩囨护鎺夊喕缁撶殑鎴愬憳鍜孶serId涓虹┖鐨勬暟鎹紱
+                    continue;
+                }
                 if (string.IsNullOrEmpty(currUserIfon.DoorLockMacPort))
                 {
                     currUserIfon.DoorLockMacPort = o.DoorLockMacPort;
                 }
                 if (o.CloudAccountId == Config.Instance.Guid)
                 {
+
                     UnlockingMode unlockingMode = new UnlockingMode();
                     unlockingMode.OpenMode = o.OpenMode;
                     unlockingMode.UserId = o.UserId;
@@ -770,6 +862,7 @@
                     userIfon.CloudAccountId = user.SubAccountDistributedMark;
                     if (string.IsNullOrEmpty(user.UserName))
                     {
+                        ///濡傛灉鏄电О涓虹┖锛屾鏃讹紝鐧婚檰璐﹀彿涓洪粯璁ゆ樀绉帮紱
                         userIfon.UserName = user.Account;
 
                     }
@@ -780,6 +873,11 @@
                     }
                     for (int j = 0; j < AllUserIfon.Count; j++)
                     {
+                        if (AllUserIfon[j].IsFreezeUser || string.IsNullOrEmpty(AllUserIfon[j].UserId))
+                        {
+                            ///杩囨护鎺夊喕缁撶殑鎴愬憳鍜孶serId涓虹┖鐨勬暟鎹紱
+                            continue;
+                        }
                         if (string.IsNullOrEmpty(userIfon.DoorLockMacPort))
                         {
                             userIfon.DoorLockMacPort = AllUserIfon[j].DoorLockMacPort;
@@ -835,6 +933,7 @@
                 user.CloudAccountId = data["CloudAccountId"].ToString();
                 user.DoorLockMacPort = data["DoorLockId"].ToString();
                 user.ModeName = data["UserIdRemarks"].ToString();
+                user.IsFreezeUser = Convert.ToBoolean(data["IsFreezeUser"].ToString());
                 list.Add(user);
             }
             return list;
@@ -843,7 +942,7 @@
         public static async System.Threading.Tasks.Task<string> ReadUserList(string doorlockMac)
         {
             string s = null;
-            var str = await WebClientAsync(0, CommonPage.RequestHttpsHost+"/App/GetHomePager");//涓嶅悓鍖哄煙鍩熷悕鍓嶇紑涓嶄竴鏍�
+            var str = await WebClientAsync(0, CommonPage.RequestHttpsHost + "/App/GetHomePager");//涓嶅悓鍖哄煙鍩熷悕鍓嶇紑涓嶄竴鏍�
            // var str = await WebClientAsync(0, "https://global.hdlcontrol.com/HangZhouHdlCloudApi/App/GetHomePager");
             var jObject = JObject.Parse(str);
             if (jObject == null || jObject["StateCode"].ToString() != "Success")
@@ -939,7 +1038,7 @@
                 postValues.Add("RequestVersion", CommonPage.RequestVersion);
                 postValues.Add("LoginAccessToken", residential.Token);
                 postValues.Add("HomeId", residential.Id);
-                postValues.Add("DoorLockId", residential.doorlockmac);//闂ㄩ攣Mac
+                postValues.Add("DoorLockId", residential.doorlockmac);//闂ㄩ攣Mac+绔彛
                 postValues.Add("IsOtherAccountCtrl", residential.IsOtherAccountCtrl.ToString());
                 postValues.Add("PageSetting.PageSize", Int32.MaxValue.ToString());
             }
@@ -991,7 +1090,10 @@
             /// 鐢ㄦ埛鏄电О
             /// </summary>
             public string UserName = string.Empty;
-
+            /// <summary>
+            /// 鏄惁鍐荤粨璇ユ垚鍛橈紙true宸插喕缁擄級
+            /// </summary>
+            public bool IsFreezeUser;
 
         }
 
@@ -1034,6 +1136,10 @@
             /// 闂ㄩ攣Mac+Port,璇嗗埆闂ㄩ攣锛�
             /// </summary>
             public string DoorLockMacPort = string.Empty;
+            /// <summary>
+            /// 鏄惁鍐荤粨璇ユ垚鍛橈紙true宸插喕缁擄級
+            /// </summary>
+            public bool IsFreezeUser;
 
         }
 
@@ -1050,5 +1156,40 @@
         /// </summary>
         public static UserCenter.MemberInfoRes UserMemberInfoRes = null;
         #endregion
+
+        #region  瀛樺彇鏈湴鏂囦欢鐨勬柟娉� ---鏆傛椂涓嶇敤鍚堝苟璇ユ柟娉�---
+        /// <summary>
+        /// 鏂囦欢淇濆瓨
+        /// </summary>
+        /// <param name="FileName">鏂囦欢璺緞</param>
+        /// <param name="obj">闇�瑕佸簭鍒楀寲鏁版嵁</param>
+        public static void SaveLocalFile(string FileName, object obj)
+        {
+            //鍏堝簭鍒楀寲鏁版嵁锛�
+            var data = Newtonsoft.Json.JsonConvert.SerializeObject(obj);
+            //鏁版嵁杞崲涓哄瓧鑺傛祦锛�
+            var byteData = System.Text.Encoding.UTF8.GetBytes(data);
+            //鍐欏叆鏁版嵁锛�
+            Shared.IO.FileUtils.WriteFileByBytes(FileName, byteData);
+        }
+
+        /// <summary>
+        /// 鏂囦欢璇诲彇
+        /// </summary>
+        /// <param name="FileName">鏂囦欢璺緞</param>
+        /// <returns></returns>
+        public static string ReadLocalFile(string FileName)
+        {
+            if (System.IO.File.Exists(FileName) == false)
+            {
+                ///鍒ゆ柇鏄惁鏈夋枃浠�;
+                return null;
+            }
+            //璇诲嚭淇濆瓨璇ヨ矾寰勭殑鏂囦欢锛�
+            var varByte = Shared.IO.FileUtils.ReadFile(FileName);
+            //瀛楄妭娴佽浆鎹负瀛楃涓诧紱
+            return System.Text.Encoding.UTF8.GetString(varByte);
+        }
+        #endregion
     }
 }

--
Gitblit v1.8.0