From 5428935270159bfc42c2934ed7fb1091554fc9a4 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 09 七月 2020 17:12:42 +0800
Subject: [PATCH] 修改了 sokect

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs |  180 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 145 insertions(+), 35 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs
index dff6a77..5a30994 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs
@@ -32,41 +32,6 @@
 
         #endregion
 
-        #region 鈻� 瀛愭帶浠剁殑Y杞村潗鏍嘷___________________
-
-        /// <summary>
-        /// 鎸囧畾浣嶇疆绫诲瀷鑾峰彇Rowlayout鐨勫瓙鎺т欢鐨刌杞村潗鏍�(璇风‘淇濆瓙鎺т欢涓嶅ぇ浜庣埗瀹瑰櫒)
-        /// </summary>
-        /// <param name="fatherCtrHeight">鐖舵帶浠剁殑鐪熷疄楂樺害</param>
-        /// <param name="ctrHeight">瀛愭帶浠剁殑鐪熷疄楂樺害</param>
-        /// <param name="alignment">浣嶇疆瀵归綈鏂瑰紡</param>
-        /// <param name="Space">涓婁笅闂寸殑绌虹櫧闂磋窛,鐪佺暐鏃讹紝鍙栬鎺т欢鍏遍�氬彉閲忕殑鍊笺�傝缃负-1鏃讹紝涓嶈绠楃┖鐧介棿璺�</param>
-        /// <returns></returns>
-        public int GetControlChidrenYaxis(int fatherCtrHeight, int ctrHeight, UViewAlignment alignment, int Space = 0)
-        {
-            if (Space < 0)
-            {
-                //涓嶈绠楅棿璺濆��
-                Space = 0;
-            }
-
-            if (alignment == UViewAlignment.Center)
-            {
-                return fatherCtrHeight / 2 - ctrHeight / 2;
-            }
-            else if (alignment == UViewAlignment.Top)
-            {
-                return (fatherCtrHeight / 2 - Space / 2) / 2 - ctrHeight / 2;
-            }
-            else
-            {
-                int top = fatherCtrHeight / 2 + Space / 2;
-                return top + (fatherCtrHeight - top) / 2 - ctrHeight / 2;
-            }
-        }
-
-        #endregion
-
         #region 鈻� 璁$畻鍥剧墖鐪熷疄澶у皬___________________
 
         /// <summary>
@@ -80,5 +45,150 @@
         }
 
         #endregion
+
+        #region 鈻� 鏄剧ず搴曢儴寮圭獥鐨勬埧闂村垪琛╛____________
+
+        /// <summary>
+        /// 鏄剧ず搴曢儴寮圭獥鐨勬埧闂村垪琛�(褰撹繕娌℃湁鎴块棿鏃�,浼氳繑鍥瀎alse)
+        /// </summary>
+        /// <param name="RoomKey">榛樿閫夋嫨鐨勬埧闂翠富閿�</param>
+        /// <param name="titleText">鏍囬淇℃伅</param>
+        /// <param name="SelectRoomEvent">纭閫夋嫨鎴块棿鐨勫洖璋冨嚱鏁�(鎴块棿ID,鎴块棿鍚�(浼氭嫾涓婃ゼ灞�))</param>
+        public bool ShowBottomListRoomView(string RoomKey, string titleText, Action<string, string> SelectRoomEvent)
+        {
+            //妤煎眰鍒楄〃鍚嶅瓧
+            var listFloorName = new List<string>();
+            //妤煎眰鍒楄〃涓婚敭
+            var listFloorKeys = new List<string>();
+            //鎴块棿鍚嶅瓧
+            var listRoomName = new List<List<string>>();
+            //鎴块棿涓婚敭
+            var listRoomKeys = new List<List<string>>();
+
+            //鍒濆鍖栨埧闂村垪琛ㄦ暟鎹�
+            bool result = this.InitRoomListData(ref listFloorName, ref listFloorKeys, ref listRoomName, ref listRoomKeys);
+            if (result == false)
+            {
+                return false;
+            }
+
+            var room = HdlRoomLogic.Current.GetRoomById(RoomKey);
+            int index1 = room != null ? listFloorKeys.IndexOf(room.FloorId) : 0;
+            if (index1 == -1) { index1 = 0; }
+            int index2 = listRoomKeys[index1].IndexOf(RoomKey);
+            if (index2 == -1) { index2 = 0; }
+
+            if (listFloorKeys.Count == 0)
+            {
+                //鏃犳ゼ灞傛ā寮�
+                PickerView.Show(listRoomName[0], (value) =>
+                {
+                    RoomKey = listRoomKeys[0][value];
+                    string roomName = string.Empty;
+                    if (RoomKey != string.Empty)
+                    {
+                        //鎴块棿
+                        roomName = listRoomName[0][value];
+                    }
+                    else
+                    {
+                        roomName = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+                    }
+                    SelectRoomEvent?.Invoke(RoomKey, roomName);
+
+                }, index2, titleText,
+                Language.StringByID(R.MyInternationalizationString.uFinish),
+                Language.StringByID(R.MyInternationalizationString.uCancel));
+            }
+            else
+            {
+                //鏈夋ゼ灞傛ā寮�
+                PickerView.ShowSecondary(listFloorName, listRoomName, (value1, value2) =>
+                {
+                    RoomKey = listRoomKeys[value1][value2];
+                    string roomName = string.Empty;
+                    if (RoomKey != string.Empty)
+                    {
+                        //妤煎眰+鎴块棿
+                        roomName = listFloorName[value1] + " " + listRoomName[value1][value2];
+                    }
+                    else
+                    {
+                        roomName = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+                    }
+                    SelectRoomEvent?.Invoke(RoomKey, roomName);
+
+                }, index1, index2, titleText,
+                Language.StringByID(R.MyInternationalizationString.uFinish),
+                Language.StringByID(R.MyInternationalizationString.uCancel));
+            }
+            return true;
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨埧闂村垪琛ㄦ暟鎹�
+        /// </summary>
+        /// <param name="listFloorName">妤煎眰鍒楄〃鍚嶅瓧</param>
+        /// <param name="listFloorKeys">妤煎眰鍒楄〃涓婚敭</param>
+        /// <param name="listRoomName">鎴块棿鍚嶅瓧</param>
+        /// <param name="listRoomKeys">鎴块棿涓婚敭</param>
+        private bool InitRoomListData(ref List<string> listFloorName, ref List<string> listFloorKeys, ref List<List<string>> listRoomName, ref List<List<string>> listRoomKeys)
+        {
+            var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
+            if (dicFloor.Count == 0)
+            {
+                //绗竴浣嶉粯璁ゆ坊鍔犳湭鍒嗛厤
+                var listKeys = new List<string>() { "" };
+                var listName = new List<string>() { Language.StringByID(R.MyInternationalizationString.uUndistributed) };
+                //鎴块棿鍚嶅瓧鍜屼富閿敹闆�
+                var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(string.Empty, false);
+                foreach (var myRoom in listRoom)
+                {
+                    listName.Add(myRoom.Name);
+                    listKeys.Add(myRoom.Id);
+                }
+                listRoomName.Add(listName);
+                listRoomKeys.Add(listKeys);
+            }
+            else
+            {
+                //绗竴浣嶉粯璁ゆ坊鍔犳湭鍒嗛厤(鏈垎閰嶆斁鍦ㄦゼ灞傞偅涓彍鍗�)
+                var listKeys = new List<string>() { "" };
+                var listName = new List<string>() { "" };
+                listRoomName.Add(listName);
+                listRoomKeys.Add(listKeys);
+                listFloorKeys.Add("");
+                listFloorName.Add(Language.StringByID(R.MyInternationalizationString.uUndistributed));
+
+                foreach (string fKeys in dicFloor.Keys)
+                {
+                    var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(fKeys, false);
+                    if (listRoom.Count > 0)
+                    {
+                        //妤煎眰鍚嶅瓧鍜屼富閿敹闆�
+                        listFloorKeys.Add(fKeys);
+                        listFloorName.Add(dicFloor[fKeys]);
+                        //鎴块棿鍚嶅瓧鍜屼富閿敹闆�
+                        listName = new List<string>();
+                        listKeys = new List<string>();
+                        foreach (var myRoom in listRoom)
+                        {
+                            listName.Add(myRoom.Name);
+                            listKeys.Add(myRoom.Id);
+                        }
+                        listRoomName.Add(listName);
+                        listRoomKeys.Add(listKeys);
+                    }
+                }
+            }
+            //娌℃湁寤虹珛鎴块棿
+            if (listFloorKeys.Count == 0 && listRoomKeys.Count == 0)
+            {
+                return false;
+            }
+            return true;
+        }
+
+        #endregion
     }
 }

--
Gitblit v1.8.0