From a5b3c4bae726ef6770d4bfcbf2f4b50a37ed4a15 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 06 三月 2020 15:31:36 +0800
Subject: [PATCH] 删除了郭雪城的 DeviceUi 这个类

---
 ZigbeeApp/Shared/Phone/Device/Category/Category.cs |  387 +++++++++++++++++++++++++++---------------------------
 1 files changed, 193 insertions(+), 194 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
index 75e410e..9bb4cd1 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -107,7 +107,7 @@
         /// <summary>
         /// 鐩稿悓绫诲瀷鐨勮澶囧垪琛�
         /// </summary>
-        private Dictionary<int, List<DeviceUI>> typeDeviceDic;
+        private Dictionary<int, List<CommonDevice>> typeDeviceDic;
         /// <summary>
         /// 璁惧绫诲瀷鐨勫浘id
         /// </summary>
@@ -115,7 +115,7 @@
         /// <summary>
         /// dList
         /// </summary>
-        private List<DeviceUI> devList;
+        private List<CommonDevice> devList;
         /// <summary>
         /// sceneList
         /// </summary>
@@ -173,33 +173,33 @@
                         for (int i = 0; deviceListScrolView != null && i < deviceListScrolView.ChildrenCount; i++)
                         {
                             var rowLayout = deviceListScrolView.GetChildren(i) as RowLayout;
-                            var deviceUI = rowLayout.Tag as DeviceUI;
-                            if (deviceUI == null || deviceUI.CommonDevice == null)
+                            var deviceUI = LocalDevice.Current.GetDevice(rowLayout.Tag.ToString());
+                            if (deviceUI == null)
                             {
                                 continue;
                             }
-                            if (deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr || deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint)
+                            if (deviceUI.DeviceAddr != common.DeviceAddr || deviceUI.DeviceEpoint != common.DeviceEpoint)
                             {
                                 continue;
                             }
-                            switch (deviceUI.CommonDevice.Type)
+                            switch (deviceUI.Type)
                             {
                                 case DeviceType.OnOffOutput:
                                     //寮�鍏冲姛鑳�
                                     if (common.DeviceStatusReport.CluterID == 6)
                                     {
-                                        var light = deviceUI.CommonDevice as ToggleLight;
+                                        var light = deviceUI as ToggleLight;
                                         light.DeviceStatusReport = common.DeviceStatusReport;
                                         light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData;
                                         var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                         row.IsSelected = light.OnOffStatus == 1;
-                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         light.LastDateTime = DateTime.Now;
                                     }
                                     if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        deviceUI.CommonDevice.IsOnline = 1;
-                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                        deviceUI.IsOnline = 1;
+                                        deviceUI.LastDateTime = DateTime.Now;
                                     }
                                     break;
 
@@ -207,18 +207,18 @@
                                     //寮�鍏冲姛鑳�
                                     if (common.DeviceStatusReport.CluterID == 6)
                                     {
-                                        var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
+                                        var airSwitch = deviceUI as ZigBee.Device.AirSwitch;
                                         airSwitch.DeviceStatusReport = common.DeviceStatusReport;
                                         airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData;
                                         var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                         row.IsSelected = airSwitch.OnOffStatus == 1;
-                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         airSwitch.LastDateTime = DateTime.Now;
                                     }
                                     if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        deviceUI.CommonDevice.IsOnline = 1;
-                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                        deviceUI.IsOnline = 1;
+                                        deviceUI.LastDateTime = DateTime.Now;
                                     }
                                     break;
                                 case DeviceType.WindowCoveringDevice:
@@ -228,7 +228,7 @@
                                         if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0)
                                         {
                                             //绐楀笜绫诲瀷
-                                            var rollerShade = deviceUI.CommonDevice as Rollershade;
+                                            var rollerShade = deviceUI as Rollershade;
                                             rollerShade.DeviceStatusReport = common.DeviceStatusReport;
                                             rollerShade.WcdType = common.DeviceStatusReport.AttriBute[0].AttriButeData;
                                             rollerShade.LastDateTime = DateTime.Now;
@@ -237,18 +237,18 @@
                                         {
                                             var row = rowLayout.GetChildren(0) as CategoryFunctionForWinRow;
                                             //绐楀笜鐧惧垎姣�
-                                            var rollerShade = deviceUI.CommonDevice as Rollershade;
+                                            var rollerShade = deviceUI as Rollershade;
                                             rollerShade.DeviceStatusReport = common.DeviceStatusReport;
                                             rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                            row.SetStatuText($"{Language.StringByID(R.MyInternationalizationString.Current)} { deviceUI.GetDeviceStatu()}");
+                                            row.SetStatuText($"{Language.StringByID(R.MyInternationalizationString.Current)} { HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)}");
                                             row.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage != 0;
                                             rollerShade.LastDateTime = DateTime.Now;
                                         }
                                     }
                                     if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        deviceUI.CommonDevice.IsOnline = 1;
-                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                        deviceUI.IsOnline = 1;
+                                        deviceUI.LastDateTime = DateTime.Now;
                                     }
                                     break;
 
@@ -257,7 +257,7 @@
                                     if (common.DeviceStatusReport.CluterID == 513)
                                     {
                                         var attriButeList = common.DeviceStatusReport.AttriBute;
-                                        var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
+                                        var ac = deviceUI as ZigBee.Device.AC;
                                         ac.DeviceStatusReport = common.DeviceStatusReport;
                                         foreach (var attList in attriButeList)
                                         {
@@ -292,12 +292,12 @@
                                         }
                                         var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                         row.IsSelected = ac.currentSystemMode != 0;
-                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     }
 
                                     if (common.DeviceStatusReport.CluterID == 514)
                                     {
-                                        var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
+                                        var ac = deviceUI as ZigBee.Device.AC;
                                         var attriButeList = common.DeviceStatusReport.AttriBute;
                                         ac.DeviceStatusReport = common.DeviceStatusReport;
                                         foreach (var attList in attriButeList)
@@ -316,12 +316,12 @@
                                         }
                                         var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                         row.IsSelected = ac.currentSystemMode != 0;
-                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     }
 
                                     if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
+                                        var ac = deviceUI as ZigBee.Device.AC;
                                         ac.IsOnline = 1;
                                         ac.LastDateTime = DateTime.Now;
                                     }
@@ -330,28 +330,28 @@
                                     //璋冨厜鐏姛鑳�
                                     if (common.DeviceStatusReport.CluterID == 6)
                                     {
-                                        var dimmableLight = deviceUI.CommonDevice as DimmableLight;
+                                        var dimmableLight = deviceUI as DimmableLight;
                                         dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
                                         dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
                                         var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                         row.IsSelected = dimmableLight.OnOffStatus == 1;
-                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         dimmableLight.LastDateTime = DateTime.Now;
                                     }
                                     if (common.DeviceStatusReport.CluterID == 8)
                                     {
-                                        var dimmableLight = deviceUI.CommonDevice as DimmableLight;
+                                        var dimmableLight = deviceUI as DimmableLight;
                                         dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
                                         dimmableLight.Level = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
                                         var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                         row.IsSelected = dimmableLight.OnOffStatus == 1;
-                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         dimmableLight.LastDateTime = DateTime.Now;
                                     }
                                     if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        deviceUI.CommonDevice.IsOnline = 1;
-                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                        deviceUI.IsOnline = 1;
+                                        deviceUI.LastDateTime = DateTime.Now;
                                     }
                                     break;
 
@@ -359,7 +359,7 @@
                                     //娓╁害
                                     if (common.DeviceStatusReport.CluterID == 1026)
                                     {
-                                        var tempera = deviceUI.CommonDevice as TemperatureSensor;
+                                        var tempera = deviceUI as TemperatureSensor;
                                         foreach (var data in common.DeviceStatusReport.AttriBute)
                                         {
                                             if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
@@ -384,14 +384,14 @@
                                                     tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
                                                 }
                                                 var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
-                                                row.SetStatuText(deviceUI.GetDeviceStatu());
+                                                row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                             }
                                         }
                                     }
                                     //婀垮害
                                     if (common.DeviceStatusReport.CluterID == 1029)
                                     {
-                                        var tempera = deviceUI.CommonDevice as TemperatureSensor;
+                                        var tempera = deviceUI as TemperatureSensor;
                                         foreach (var data in common.DeviceStatusReport.AttriBute)
                                         {
                                             if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
@@ -409,7 +409,7 @@
                                                     tempera.LastDateTime = DateTime.Now;
                                                 }
                                                 var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
-                                                row.SetStatuText(deviceUI.GetDeviceStatu());
+                                                row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                             }
                                         }
                                     }
@@ -432,40 +432,40 @@
                         for (int i = 0; deviceListScrolView != null && i < deviceListScrolView.ChildrenCount; i++)
                         {
                             var rowLayout = deviceListScrolView.GetChildren(i) as RowLayout;
-                            var deviceUI = rowLayout.Tag as DeviceUI;
-                            if (deviceUI == null || deviceUI.CommonDevice == null)
+                            var deviceUI = LocalDevice.Current.GetDevice(rowLayout.Tag.ToString());
+                            if (deviceUI == null)
                             {
                                 continue;
                             }
-                            if (deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr || deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint)
+                            if (deviceUI.DeviceAddr != common.DeviceAddr || deviceUI.DeviceEpoint != common.DeviceEpoint)
                             {
                                 continue;
                             }
-                            switch (deviceUI.CommonDevice.Type)
+                            switch (deviceUI.Type)
                             {
                                 case DeviceType.OnOffOutput:
-                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
-                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                    deviceUI.IsOnline = common.IsOnline;
+                                    deviceUI.LastDateTime = DateTime.Now;
                                     break;
 
                                 case DeviceType.AirSwitch:
-                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
-                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                    deviceUI.IsOnline = common.IsOnline;
+                                    deviceUI.LastDateTime = DateTime.Now;
                                     break;
 
                                 case DeviceType.WindowCoveringDevice:
-                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
-                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
+                                    deviceUI.LastDateTime = DateTime.Now;
+                                    deviceUI.IsOnline = common.IsOnline;
                                     break;
 
                                 case DeviceType.DimmableLight:
-                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
-                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
+                                    deviceUI.LastDateTime = DateTime.Now;
+                                    deviceUI.IsOnline = common.IsOnline;
                                     break;
 
                                 case DeviceType.Thermostat:
-                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
-                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
+                                    deviceUI.LastDateTime = DateTime.Now;
+                                    deviceUI.IsOnline = common.IsOnline;
                                     break;
                             }
                         }
@@ -485,25 +485,25 @@
                         for (int i = 0; deviceListScrolView != null && i < deviceListScrolView.ChildrenCount; i++)
                         {
                             var rowLayout = deviceListScrolView.GetChildren(i) as RowLayout;
-                            var deviceUI = rowLayout.Tag as DeviceUI;
-                            if (deviceUI == null || deviceUI.CommonDevice == null)
+                            var deviceUI = LocalDevice.Current.GetDevice(rowLayout.Tag.ToString());
+                            if (deviceUI == null)
                             {
                                 continue;
                             }
-                            if (deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr || deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint)
+                            if (deviceUI.DeviceAddr != common.DeviceAddr || deviceUI.DeviceEpoint != common.DeviceEpoint)
                             {
                                 continue;
                             }
-                            switch (deviceUI.CommonDevice.Type)
+                            switch (deviceUI.Type)
                             {
                                 case DeviceType.IASZone:
                                     //寮�鍏冲姛鑳�
                                     var ias = common as IASZone;
-                                    var iAS = deviceUI.CommonDevice as ZigBee.Device.IASZone;
+                                    var iAS = deviceUI as ZigBee.Device.IASZone;
                                     iAS.iASInfo = ias.iASInfo;
                                     var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                     row.IsSelected = iAS.iASInfo?.Alarm1 == 1;
-                                    row.SetStatuText(deviceUI.GetDeviceStatu());
+                                    row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     iAS.LastDateTime = DateTime.Now;
                                     break;
                             }
@@ -717,7 +717,7 @@
             floors.FloorAction += (floorId) =>
             {
                 floorBtn.Text = Config.Instance.Home.GetFloorNameById(floorId);
-                Common.Room.CurrentRoom = Common.Room.CurrentRoom.GetLoveRoom();
+                HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom();
                 RefreshBodyView();
             };
         }
@@ -862,7 +862,7 @@
         /// </summary>
         private void InitData()
         {
-            typeDeviceDic = new Dictionary<int, List<DeviceUI>> { };
+            typeDeviceDic = new Dictionary<int, List<CommonDevice>> { };
             typeIdDic = new Dictionary<int, DeviceConcreteType> { };
         }
 
@@ -871,20 +871,20 @@
         /// </summary>
         private void RefreshData(Common.Room room)
         {
-            devList = room.DeviceUIList;
-            sceneList = room.SceneUIList;
+            devList = HdlRoomLogic.Current.GetRoomListDevice(room);
+            sceneList = HdlSceneLogic.Current.GetRoomSceneList(room);
             typeDeviceDic.Clear();
             typeIdDic.Clear();
             foreach (var device in devList)
             {
-                var info = Common.LocalDevice.Current.GetDeviceBelongEnumInfo(device.CommonDevice);
+                var info = Common.LocalDevice.Current.GetDeviceBelongEnumInfo(device);
                 if (info.BeloneType == DeviceBeloneType.A骞叉帴鐐� || info.BeloneType == DeviceBeloneType.A涓户鍣�)
                 {
                     continue;
                 }
                 if (typeDeviceDic.ContainsKey(info.BeloneTextId) == false)
                 {
-                    var sameDevList = new List<DeviceUI> { };
+                    var sameDevList = new List<CommonDevice> { };
                     sameDevList.Add(device);
                     typeDeviceDic[info.BeloneTextId] = sameDevList;
                 }
@@ -1038,7 +1038,7 @@
 
             deviceListScrolView.RemoveAll();
 
-            var sameTypeList = new List<DeviceUI> { };
+            var sameTypeList = new List<CommonDevice> { };
             sameTypeList = typeDeviceDic[int.Parse((typeSender as Button).Tag.ToString())];
 
             for (int i = 0; i < sameTypeList.Count; i++)
@@ -1054,15 +1054,15 @@
                             {
                                 Height = Application.GetRealHeight(127 + 35),
                                 LineColor = ZigbeeColor.Current.GXCClearColor,
-                                Tag = deviceUI,
-                                SubViewWidth=Application.GetRealWidth(184)
+                                Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI),
+                                SubViewWidth = Application.GetRealWidth(184)
                             };
                             deviceListScrolView.AddChidren(deviceTypeRowLayout);
 
-                            if (deviceUI.CommonDevice.Type == DeviceType.OnOffOutput)
+                            if (deviceUI.Type == DeviceType.OnOffOutput)
                             {
                                 //鐏�
-                                var light = deviceUI.CommonDevice as ToggleLight;
+                                var light = deviceUI as ToggleLight;
                                 if (light.Gateway != null)
                                 {
                                     new System.Threading.Thread(() =>
@@ -1072,7 +1072,7 @@
                                         {
                                             UserHomeView.ReadStatus(light, () =>
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI);
                                             });
                                         }
                                         else
@@ -1080,7 +1080,7 @@
                                             //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵��
                                             if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds)
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI);
                                             }
                                         }
                                     })
@@ -1088,17 +1088,17 @@
 
                                     var deviceRow = new CategoryFunctionRow(0, 35);
                                     deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                    deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     deviceRow.IsSelected = light.OnOffStatus == 1;
                                     deviceTypeRowLayout.AddChidren(deviceRow);
 
                                     deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                                     {
-                                        zbGateway = deviceUI.CommonDevice.Gateway;
+                                        zbGateway = deviceUI.Gateway;
                                         sendedControlCommand = false;
                                         zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI);
                                         (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                         deviceRow.IsSelected = (send2 as Button).IsSelected;
                                         if ((send2 as Button).IsSelected)
@@ -1109,9 +1109,9 @@
                                         {
                                             light.SwitchControl(0);
                                         }
-                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                        deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         //鎺у埗寤舵椂鍥炶皟
-                                        DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+                                        HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () =>
                                         {
                                             if (Parent == null)
                                             {
@@ -1120,7 +1120,7 @@
                                             RemoveUpdateControlDeviceStatuAction(zbGateway);
                                             if (sendedControlCommand == false)
                                             {
-                                                DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                                HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                             }
                                         });
                                     };
@@ -1129,7 +1129,7 @@
                                         var lightControl = new Phone.Device.Light.OnOffControl();
                                         UserView.HomePage.Instance.AddChidren(lightControl);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        lightControl.Show(deviceUI, Common.Room.CurrentRoom);
+                                        lightControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         lightControl.action += (curDev, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1141,7 +1141,7 @@
                                         var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                         UserView.HomePage.Instance.AddChidren(detailInfo);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                        detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         detailInfo.EditAction += (curDevice, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1149,19 +1149,19 @@
                                     };
                                     var editBtn = new CommonForm.RowLayoutEditButton()
                                     {
-                                        Tag = deviceUI
+                                        Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                     };
-                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                    if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                     {
                                         deviceTypeRowLayout.AddRightView(editBtn);
                                         editBtn.MouseUpEventHandler += deviceDetailHandler;
                                     }
                                 }
                             }
-                            else if (deviceUI.CommonDevice.Type == DeviceType.AirSwitch)
+                            else if (deviceUI.Type == DeviceType.AirSwitch)
                             {
                                 //绌烘皵寮�鍏�
-                                var airSwitch = deviceUI.CommonDevice as AirSwitch;
+                                var airSwitch = deviceUI as AirSwitch;
                                 if (airSwitch.Gateway != null)
                                 {
                                     new System.Threading.Thread(() =>
@@ -1171,14 +1171,14 @@
                                         {
                                             UserHomeView.ReadStatus(airSwitch, () =>
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI);
                                             });
                                         }
                                         else
                                         {
                                             if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI);
                                             }
                                         }
                                     })
@@ -1186,16 +1186,16 @@
 
                                     var deviceRow = new CategoryFunctionRow(0, 35);
                                     deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
+                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
                                     deviceRow.IsSelected = airSwitch.OnOffStatus == 1;
-                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     deviceTypeRowLayout.AddChidren(deviceRow);
                                     deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                                     {
-                                        zbGateway = deviceUI.CommonDevice.Gateway;
+                                        zbGateway = deviceUI.Gateway;
                                         sendedControlCommand = false;
                                         zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI);
                                         (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                         deviceRow.IsSelected = (send2 as Button).IsSelected;
                                         if ((send2 as Button).IsSelected)
@@ -1206,9 +1206,9 @@
                                         {
                                             airSwitch.SwitchControl(0);
                                         }
-                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                        deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         //鎺у埗寤舵椂鍥炶皟
-                                        DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+                                        HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () =>
                                         {
                                             if (Parent == null)
                                             {
@@ -1217,7 +1217,7 @@
                                             RemoveUpdateControlDeviceStatuAction(zbGateway);
                                             if (sendedControlCommand == false)
                                             {
-                                                DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                                HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                             }
                                         });
                                     };
@@ -1227,7 +1227,7 @@
                                         var lightControl = new Phone.Device.Light.AirSwitchControl();
                                         UserView.HomePage.Instance.AddChidren(lightControl);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        lightControl.Show(deviceUI, Common.Room.CurrentRoom);
+                                        lightControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         lightControl.action += (curDev, curRoom) =>
                                         {
 
@@ -1241,7 +1241,7 @@
                                         var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                         UserView.HomePage.Instance.AddChidren(detailInfo);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                        detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         detailInfo.EditAction += (curDevice, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1250,19 +1250,19 @@
                                     };
                                     var editBtn = new CommonForm.RowLayoutEditButton()
                                     {
-                                        Tag = deviceUI
+                                        Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                     };
-                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                    if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                     {
                                         deviceTypeRowLayout.AddRightView(editBtn);
                                         editBtn.MouseUpEventHandler += deviceDetailHandler;
                                     }
                                 }
                             }
-                            else if (deviceUI.CommonDevice.Type == DeviceType.DimmableLight)
+                            else if (deviceUI.Type == DeviceType.DimmableLight)
                             {
                                 //璋冨厜鐏�
-                                var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
+                                var dimmableLight = deviceUI as ZigBee.Device.DimmableLight;
                                 if (dimmableLight.Gateway != null)
                                 {
                                     new System.Threading.Thread(() =>
@@ -1272,14 +1272,14 @@
                                         {
                                             UserHomeView.ReadStatus(dimmableLight, () =>
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI);
                                             });
                                         }
                                         else
                                         {
                                             if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI);
                                             }
                                         }
                                     })
@@ -1287,17 +1287,17 @@
 
                                     var deviceRow = new CategoryFunctionRow(0, 35);
                                     deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                    deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     deviceRow.IsSelected = dimmableLight.OnOffStatus == 1;
                                     deviceTypeRowLayout.AddChidren(deviceRow);
 
                                     deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                                     {
-                                        zbGateway = deviceUI.CommonDevice.Gateway;
+                                        zbGateway = deviceUI.Gateway;
                                         sendedControlCommand = false;
                                         zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI);
                                         (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                         deviceRow.IsSelected = (send2 as Button).IsSelected;
                                         if ((send2 as Button).IsSelected)
@@ -1308,9 +1308,9 @@
                                         {
                                             dimmableLight.SwitchControl(0);
                                         }
-                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                        deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         //鎺у埗寤舵椂鍥炶皟
-                                        DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+                                        HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () =>
                                         {
                                             if (Parent == null)
                                             {
@@ -1319,7 +1319,7 @@
                                             RemoveUpdateControlDeviceStatuAction(zbGateway);
                                             if (sendedControlCommand == false)
                                             {
-                                                DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                                HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                             }
                                         });
                                     };
@@ -1330,7 +1330,7 @@
                                         UserView.HomePage.Instance.AddChidren(dimmableLightControl);
                                         UserView.HomePage.Instance.PageIndex += 1;
                                         UserView.HomePage.Instance.ScrollEnabled = false;
-                                        dimmableLightControl.Show(deviceUI, Common.Room.CurrentRoom);
+                                        dimmableLightControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         dimmableLightControl.action += (curDev, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1343,7 +1343,7 @@
                                         var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                         UserView.HomePage.Instance.AddChidren(detailInfo);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                        detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         detailInfo.EditAction += (curDevice, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1351,19 +1351,19 @@
                                     };
                                     var editBtn = new CommonForm.RowLayoutEditButton()
                                     {
-                                        Tag = deviceUI
+                                        Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                     };
-                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                    if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                     {
                                         deviceTypeRowLayout.AddRightView(editBtn);
                                         editBtn.MouseUpEventHandler += deviceDetailHandler;
                                     }
                                 }
                             }
-                            else if (deviceUI.CommonDevice.Type == DeviceType.Thermostat)
+                            else if (deviceUI.Type == DeviceType.Thermostat)
                             {
                                 //绌鸿皟
-                                var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
+                                var ac = deviceUI as ZigBee.Device.AC;
                                 if (ac.Gateway != null)
                                 {
                                     new System.Threading.Thread(() =>
@@ -1374,7 +1374,7 @@
                                             //鍙戦�佽鍙栫姸鎬佸懡浠�
                                             UserView.UserHomeView.ReadStatus(ac, () =>
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI);
                                             });
                                         }
                                         else
@@ -1382,7 +1382,7 @@
                                             //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵��
                                             if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI);
                                             }
                                         }
                                     })
@@ -1390,17 +1390,17 @@
 
                                     var deviceRow = new CategoryFunctionRow(0, 35);
                                     deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                    deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     deviceRow.IsSelected = ac.currentSystemMode != 1;
                                     deviceTypeRowLayout.AddChidren(deviceRow);
 
                                     deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                                     {
-                                        zbGateway = deviceUI.CommonDevice.Gateway;
+                                        zbGateway = deviceUI.Gateway;
                                         sendedControlCommand = false;
                                         zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI);
 
                                         (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                         deviceRow.IsSelected = (send2 as Button).IsSelected;
@@ -1412,9 +1412,9 @@
                                         {
                                             ac.Close();
                                         }
-                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                        deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         //鎺у埗寤舵椂鍥炶皟
-                                        DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+                                        HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () =>
                                         {
                                             if (Parent == null)
                                             {
@@ -1423,7 +1423,7 @@
                                             RemoveUpdateControlDeviceStatuAction(zbGateway);
                                             if (sendedControlCommand == false)
                                             {
-                                                DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                                HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                             }
                                         });
                                     };
@@ -1433,7 +1433,7 @@
                                         UserView.HomePage.Instance.AddChidren(acControl);
                                         UserView.HomePage.Instance.PageIndex += 1;
                                         UserView.HomePage.Instance.ScrollEnabled = false;
-                                        acControl.Show(deviceUI, Common.Room.CurrentRoom);
+                                        acControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         acControl.action += (curDev, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1446,7 +1446,7 @@
                                         var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                         UserView.HomePage.Instance.AddChidren(detailInfo);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                        detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         detailInfo.EditAction += (curDevice, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1455,19 +1455,19 @@
                                     };
                                     var editBtn = new CommonForm.RowLayoutEditButton()
                                     {
-                                        Tag = deviceUI
+                                        Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                     };
-                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                    if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                     {
                                         deviceTypeRowLayout.AddRightView(editBtn);
                                         editBtn.MouseUpEventHandler += deviceDetailHandler;
                                     }
                                 }
                             }
-                            else if (deviceUI.CommonDevice.Type == DeviceType.WindowCoveringDevice)
+                            else if (deviceUI.Type == DeviceType.WindowCoveringDevice)
                             {
                                 //鍗峰笜
-                                var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
+                                var rollerShade = deviceUI as ZigBee.Device.Rollershade;
                                 if (rollerShade.Gateway != null)
                                 {
                                     new System.Threading.Thread(() =>
@@ -1477,7 +1477,7 @@
                                         {
                                             UserHomeView.ReadStatus(rollerShade, () =>
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI);
                                             });
                                         }
                                         else
@@ -1485,7 +1485,7 @@
                                             //闃叉鐭椂闂村唴澶氭璇诲彇
                                             if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI);
                                             }
                                         }
                                     })
@@ -1493,8 +1493,8 @@
 
                                     var deviceRow = new CategoryFunctionForWinRow(0, 35);
                                     deviceRow.Init(deviceUI);
-                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                    deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     deviceRow.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage != 0;
                                     deviceRow.SetRollerShadeIcon(rollerShade.WcdType);
                                     deviceTypeRowLayout.AddChidren(deviceRow);
@@ -1522,7 +1522,7 @@
                                         UserView.HomePage.Instance.AddChidren(rollerShadeControl);
                                         UserView.HomePage.Instance.PageIndex += 1;
                                         UserView.HomePage.Instance.ScrollEnabled = false;
-                                        rollerShadeControl.Show(deviceUI, Common.Room.CurrentRoom);
+                                        rollerShadeControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         rollerShadeControl.action += (curDev, curRoom) =>
                                         {
                                             ReFreshDeviceActionForWin(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1534,7 +1534,7 @@
                                         var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                         UserView.HomePage.Instance.AddChidren(detailInfo);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                        detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         detailInfo.EditAction += (curDevice, curRoom) =>
                                         {
                                             ReFreshDeviceActionForWin(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1542,27 +1542,27 @@
                                     };
                                     var editBtn = new CommonForm.RowLayoutEditButton()
                                     {
-                                        Tag = deviceUI
+                                        Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                     };
-                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                    if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                     {
                                         deviceTypeRowLayout.AddRightView(editBtn);
                                         editBtn.MouseUpEventHandler += deviceDetailHandler;
                                     }
                                 }
                             }
-                            else if (deviceUI.CommonDevice.Type == DeviceType.DoorLock)
+                            else if (deviceUI.Type == DeviceType.DoorLock)
                             {
                                 var deviceRow = new CategoryFunctionRow(0, 35);
                                 deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                 deviceRow.HideSwitchBtn(true);
                                 deviceTypeRowLayout.AddChidren(deviceRow);
 
                                 deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                                 {
-                                    var userDoorLockPage = new UserDoorLockPage(Common.Room.CurrentRoom, deviceUI);
+                                    var userDoorLockPage = new UserDoorLockPage(HdlRoomLogic.Current.CurrentRoom, deviceUI);
                                     HomePage.Instance.AddChidren(userDoorLockPage);
                                     HomePage.Instance.PageIndex += 1;
                                     userDoorLockPage.Show();
@@ -1572,7 +1572,7 @@
                                     var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                     UserView.HomePage.Instance.AddChidren(detailInfo);
                                     UserView.HomePage.Instance.PageIndex += 1;
-                                    detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                    detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                     detailInfo.EditAction += (curDevice, curRoom) =>
                                     {
                                         ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1580,21 +1580,21 @@
                                 };
                                 var editBtn = new CommonForm.RowLayoutEditButton()
                                 {
-                                    Tag = deviceUI
+                                    Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                 };
-                                if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                 {
                                     deviceTypeRowLayout.AddRightView(editBtn);
                                     editBtn.MouseUpEventHandler += deviceDetailHandler;
                                 }
                             }
-                            else if (deviceUI.CommonDevice.Type == DeviceType.IASZone)
+                            else if (deviceUI.Type == DeviceType.IASZone)
                             {
                                 var deviceRow = new CategoryFunctionRow(0, 35);
                                 deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
-                                deviceRow.IsSelected = (deviceUI.CommonDevice as IASZone).iASInfo?.Alarm1 == 1;
+                                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
+                                deviceRow.IsSelected = (deviceUI as IASZone).iASInfo?.Alarm1 == 1;
                                 deviceRow.HideSwitchBtn(true);
                                 deviceTypeRowLayout.AddChidren(deviceRow);
 
@@ -1603,7 +1603,7 @@
                                     var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                     UserView.HomePage.Instance.AddChidren(detailInfo);
                                     UserView.HomePage.Instance.PageIndex += 1;
-                                    detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                    detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                     detailInfo.EditAction += (curDevice, curRoom) =>
                                     {
                                         ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1611,17 +1611,17 @@
                                 };
                                 var editBtn = new CommonForm.RowLayoutEditButton()
                                 {
-                                    Tag = deviceUI
+                                    Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                 };
-                                if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                 {
                                     deviceTypeRowLayout.AddRightView(editBtn);
                                     editBtn.MouseUpEventHandler += deviceDetailHandler;
                                 }
                             }
-                            else if (deviceUI.CommonDevice.Type == DeviceType.TemperatureSensor)
+                            else if (deviceUI.Type == DeviceType.TemperatureSensor)
                             {
-                                var tempera = deviceUI.CommonDevice as TemperatureSensor;
+                                var tempera = deviceUI as TemperatureSensor;
                                 if (tempera.Gateway != null)
                                 {
                                     new System.Threading.Thread(() =>
@@ -1633,11 +1633,11 @@
                                             {
                                                 if (tempera.SensorDiv == 1)
                                                 {
-                                                    ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI.CommonDevice);
+                                                    ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI);
                                                 }
                                                 else if (tempera.SensorDiv == 2)
                                                 {
-                                                    ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI.CommonDevice);
+                                                    ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI);
                                                 }
                                             });
                                         }
@@ -1647,11 +1647,11 @@
                                             {
                                                 if (tempera.SensorDiv == 1)
                                                 {
-                                                    ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI.CommonDevice);
+                                                    ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI);
                                                 }
                                                 else if (tempera.SensorDiv == 2)
                                                 {
-                                                    ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI.CommonDevice);
+                                                    ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI);
                                                 }
                                             }
                                         }
@@ -1660,8 +1660,8 @@
 
                                     var deviceRow = new CategoryFunctionRow(0, 35);
                                     deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                    deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     deviceRow.IsSelected = false;
                                     deviceRow.HideSwitchBtn(true);
                                     deviceTypeRowLayout.AddChidren(deviceRow);
@@ -1671,7 +1671,7 @@
                                         var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                         UserView.HomePage.Instance.AddChidren(detailInfo);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                        detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         detailInfo.EditAction += (curDevice, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1679,9 +1679,9 @@
                                     };
                                     var editBtn = new CommonForm.RowLayoutEditButton()
                                     {
-                                        Tag = deviceUI
+                                        Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                     };
-                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                    if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                     {
                                         deviceTypeRowLayout.AddRightView(editBtn);
                                         editBtn.MouseUpEventHandler += deviceDetailHandler;
@@ -1692,8 +1692,8 @@
                             {
                                 var deviceRow = new CategoryFunctionRow(0, 35);
                                 deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                 deviceRow.HideSwitchBtn(true);
                                 deviceTypeRowLayout.AddChidren(deviceRow);
 
@@ -1702,7 +1702,7 @@
                                     var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                     UserView.HomePage.Instance.AddChidren(detailInfo);
                                     UserView.HomePage.Instance.PageIndex += 1;
-                                    detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                    detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                     detailInfo.EditAction += (curDevice, curRoom) =>
                                     {
                                         ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1710,9 +1710,9 @@
                                 };
                                 var editBtn = new CommonForm.RowLayoutEditButton()
                                 {
-                                    Tag = deviceUI
+                                    Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                 };
-                                if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                 {
                                     deviceTypeRowLayout.AddRightView(editBtn);
                                     editBtn.MouseUpEventHandler += deviceDetailHandler;
@@ -1726,21 +1726,19 @@
                                 alert.Show();
                                 alert.ConfirmClickEvent += () =>
                                 {
-                                    if (Common.Room.CurrentRoom.IsLove)
+                                    if (HdlRoomLogic.Current.CurrentRoom.IsLove)
                                     {
-                                        Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.FileName);
+                                        HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);
                                         deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
                                         sameTypeList.Remove(deviceUI);
                                     }
                                     else
                                     {
-                                        Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice);
+                                        HdlRoomLogic.Current.DeleteDevice(deviceUI);
                                         deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
-                                        sameTypeList.Remove(deviceUI);
-                                        if (Common.Room.CurrentRoom.GetLoveRoom().DeviceUIList.Find((obj) => obj.FileName == deviceUI.FileName) != null)
-                                        {
-                                            Common.Room.CurrentRoom.GetLoveRoom().DeleteDevice(deviceUI.FileName);
-                                        }
+                                        sameTypeList.Remove(deviceUI);
+
+                                        HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);
                                     }
                                     if (sameTypeList.Count == 0)
                                     {
@@ -1750,9 +1748,9 @@
                             };
                             var delBtn = new CommonForm.RowLayoutDeleteButton()
                             {
-                                Tag = deviceUI
+                                Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                             };
-                            if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                            if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                             {
                                 deviceTypeRowLayout.AddRightView(delBtn);
                                 delBtn.MouseUpEventHandler += delEvent;
@@ -1772,38 +1770,38 @@
         /// <param name="sameTypeList"></param>
         /// <param name="devListScrolView"></param>
         /// <param name="deviceRow"></param>
-        private void ReFreshDeviceAction(DeviceUI deviceUI, Common.Room curRoom, List<DeviceUI> sameTypeList, VerticalScrolViewLayout devListScrolView, CategoryFunctionRow deviceRow)
+        private void ReFreshDeviceAction(CommonDevice deviceUI, Common.Room curRoom, List<CommonDevice> sameTypeList, VerticalScrolViewLayout devListScrolView, CategoryFunctionRow deviceRow)
         {
-            if (Common.Room.CurrentRoom.IsLove)
+            if (HdlRoomLogic.Current.CurrentRoom.IsLove)
             {
                 deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                if (Common.Room.CurrentRoom.IsCollectInRoom(deviceUI.FileName) == false)
+                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                if (HdlRoomLogic.Current.IsCollectInRoom(deviceUI) == false)
                 {
                     devListScrolView.RemoveViewByTag(deviceUI);
                     sameTypeList.Remove(deviceUI);
                     if (sameTypeList.Count == 0)
                     {
-                        RefreshFunction(Common.Room.CurrentRoom);
+                        RefreshFunction(HdlRoomLogic.Current.CurrentRoom);
                     }
                 }
             }
             else
             {
-                if (curRoom.Id != Common.Room.CurrentRoom.Id)
+                if (curRoom.Id != HdlRoomLogic.Current.CurrentRoom.Id)
                 {
-                    Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.FileName);
+                    HdlRoomLogic.Current.DeleteDevice(deviceUI);
                     devListScrolView.RemoveViewByTag(deviceUI);
                     sameTypeList.Remove(deviceUI);
                     if (sameTypeList.Count == 0)
                     {
-                        RefreshFunction(Common.Room.CurrentRoom);
+                        RefreshFunction(HdlRoomLogic.Current.CurrentRoom);
                     }
                 }
                 else
                 {
                     deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
+                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
                 }
             }
         }
@@ -1815,38 +1813,38 @@
         /// <param name="sameTypeList"></param>
         /// <param name="devListScrolView"></param>
         /// <param name="deviceRow"></param>
-        private void ReFreshDeviceActionForWin(DeviceUI deviceUI, Common.Room curRoom, List<DeviceUI> sameTypeList, VerticalScrolViewLayout devListScrolView, CategoryFunctionForWinRow deviceRow)
+        private void ReFreshDeviceActionForWin(CommonDevice deviceUI, Common.Room curRoom, List<CommonDevice> sameTypeList, VerticalScrolViewLayout devListScrolView, CategoryFunctionForWinRow deviceRow)
         {
-            if (Common.Room.CurrentRoom.IsLove)
+            if (HdlRoomLogic.Current.CurrentRoom.IsLove)
             {
                 deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                if (Common.Room.CurrentRoom.IsCollectInRoom(deviceUI.FileName) == false)
+                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                if (HdlRoomLogic.Current.IsCollectInRoom(deviceUI) == false)
                 {
                     devListScrolView.RemoveViewByTag(deviceUI);
                     sameTypeList.Remove(deviceUI);
                     if (sameTypeList.Count == 0)
                     {
-                        RefreshFunction(Common.Room.CurrentRoom);
+                        RefreshFunction(HdlRoomLogic.Current.CurrentRoom);
                     }
                 }
             }
             else
             {
-                if (curRoom.Id != Common.Room.CurrentRoom.Id)
+                if (curRoom.Id != HdlRoomLogic.Current.CurrentRoom.Id)
                 {
-                    Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.FileName);
+                    HdlRoomLogic.Current.DeleteDevice(deviceUI);
                     devListScrolView.RemoveViewByTag(deviceUI);
                     sameTypeList.Remove(deviceUI);
                     if (sameTypeList.Count == 0)
                     {
-                        RefreshFunction(Common.Room.CurrentRoom);
+                        RefreshFunction(HdlRoomLogic.Current.CurrentRoom);
                     }
                 }
                 else
                 {
                     deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
+                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
                 }
             }
         }
@@ -1876,7 +1874,8 @@
             functionSceneAutoBodyView.AddChidren(functionSceneBodyView);
 
             RoomButton curBtn = new RoomButton(0, 0);
-            foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom())
+            var lisrRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
+            foreach (var room in lisrRoom)
             {
                 var row = new FrameLayout()
                 {
@@ -1891,7 +1890,7 @@
                 roomBtn.SetTitle(room.Name);
                 row.AddChidren(roomBtn);
 
-                if (room.Id == Common.Room.CurrentRoom.Id)
+                if (room.Id == HdlRoomLogic.Current.CurrentRoom.Id)
                 {
                     roomBtn.IsSelected = true;
                     curBtn = roomBtn;
@@ -1914,7 +1913,7 @@
                     sender.IsSelected = true;
                     curBtn.IsSelected = false;
                     curBtn = sender;
-                    Common.Room.CurrentRoom = room;
+                    HdlRoomLogic.Current.CurrentRoom = room;
                     if (sceneBtn.IsSelected)
                     {
                         RefreshScene(room);

--
Gitblit v1.8.0