From 3272ca5b51e19f7f8a827b0f68400570a547fe60 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 28 四月 2020 15:02:44 +0800
Subject: [PATCH] 2020-04-28-1

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs |   82 +++++++++++++++++++++++++++++++----------
 1 files changed, 62 insertions(+), 20 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs
index 0557f56..267b219 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs
@@ -55,6 +55,28 @@
         }
 
         /// <summary>
+        /// 鍒濆鍖栨帶浠�(閽堝鐨勬槸鍦烘櫙)
+        /// </summary>
+        /// <param name="i_caption">鏍囬鏂囨湰</param>
+        /// <param name="i_roomId">鎴块棿ID</param>
+        public void InitControl(string i_caption, string i_roomId)
+        {
+            var room = HdlRoomLogic.Current.GetRoomById(i_roomId);
+            this.DoInitControl(i_caption, room);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�(閽堝鐨勬槸缃戝叧)
+        /// </summary>
+        /// <param name="i_caption">鏍囬鏂囨湰</param>
+        /// <param name="i_gateway">缃戝叧瀵硅薄</param>
+        public void InitControl(string i_caption, ZigBee.Device.ZbGateway i_gateway)
+        {
+            var room = HdlGatewayLogic.Current.GetRoomByGateway(i_gateway);
+            this.DoInitControl(i_caption, room);
+        }
+
+        /// <summary>
         /// 鍒濆鍖栨帶浠�(閽堝鐨勬槸鍥炶矾)
         /// </summary>
         /// <param name="i_caption">鏍囬鏂囨湰</param>
@@ -62,7 +84,7 @@
         public void InitControl(string i_caption, ZigBee.Device.CommonDevice i_device)
         {
             var room = HdlRoomLogic.Current.GetRoomByDevice(i_device);
-            this.InitControl(i_caption, room);
+            this.DoInitControl(i_caption, room);
         }
 
         /// <summary>
@@ -73,7 +95,7 @@
         public void InitControl(string i_caption, List<ZigBee.Device.CommonDevice> i_listDevice)
         {
             var room = Common.LocalDevice.Current.GeteRealDeviceRoom(i_listDevice[0]);
-            this.InitControl(i_caption, room);
+            this.DoInitControl(i_caption, room);
         }
 
         /// <summary>
@@ -81,7 +103,7 @@
         /// </summary>
         /// <param name="i_caption"></param>
         /// <param name="i_Room"></param>
-        private void InitControl(string i_caption, Common.Room i_Room)
+        private void DoInitControl(string i_caption, Common.Room i_Room)
         {
             if (i_Room == null)
             {
@@ -161,23 +183,29 @@
             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);
-                if (listRoom.Count > 0)
+                foreach (var myRoom in listRoom)
                 {
-                    //鎴块棿鍚嶅瓧鍜屼富閿敹闆�
-                    var listName = new List<string>();
-                    var listKeys = new List<string>();
-                    foreach (var myRoom in listRoom)
-                    {
-                        listName.Add(myRoom.Name);
-                        listKeys.Add(myRoom.Id);
-                    }
-                    listRoomName.Add(listName);
-                    listRoomKeys.Add(listKeys);
+                    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);
+                this.listFloorKeys.Add("");
+                this.listFloorName.Add(Language.StringByID(R.MyInternationalizationString.uUndistributed));
+
                 foreach (string fKeys in dicFloor.Keys)
                 {
                     var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(fKeys, false);
@@ -187,8 +215,8 @@
                         this.listFloorKeys.Add(fKeys);
                         this.listFloorName.Add(dicFloor[fKeys]);
                         //鎴块棿鍚嶅瓧鍜屼富閿敹闆�
-                        var listName = new List<string>();
-                        var listKeys = new List<string>();
+                        listName = new List<string>();
+                        listKeys = new List<string>();
                         foreach (var myRoom in listRoom)
                         {
                             listName.Add(myRoom.Name);
@@ -222,9 +250,16 @@
                 //鏃犳ゼ灞傛ā寮�
                 PickerView.Show(this.listRoomName[0], (value) =>
                 {
-                    //妤煎眰+鎴块棿
-                    txtView.Text = this.listRoomName[0][value];
                     RoomKey = this.listRoomKeys[0][value];
+                    if (RoomKey != string.Empty)
+                    {
+                        //鎴块棿
+                        txtView.Text = this.listRoomName[0][value];
+                    }
+                    else
+                    {
+                        txtView.Text = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+                    }
                     this.SelectRoomEvent?.Invoke(RoomKey);
 
                 }, index2, i_caption,
@@ -236,10 +271,17 @@
                 //鏈夋ゼ灞傛ā寮�
                 PickerView.ShowSecondary(this.listFloorName, this.listRoomName, (value1, value2) =>
                 {
-                    //妤煎眰+鎴块棿
-                    txtView.Text = this.listFloorName[value1] + " " + this.listRoomName[value1][value2];
                     FloorKey = this.listFloorKeys[value1];
                     RoomKey = this.listRoomKeys[value1][value2];
+                    if (RoomKey != string.Empty)
+                    {
+                        //妤煎眰+鎴块棿
+                        txtView.Text = this.listFloorName[value1] + " " + this.listRoomName[value1][value2];
+                    }
+                    else
+                    {
+                        txtView.Text = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+                    }
                     this.SelectRoomEvent?.Invoke(RoomKey);
 
                 }, index1, index2, i_caption,

--
Gitblit v1.8.0