xm
2020-05-19 136b9e2fc48249a5ff89874f1080ba94130e7a9e
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs
@@ -31,32 +31,14 @@
                return m_Current;
            }
        }
        /// <summary>
        /// 当前选择的房间
        /// 当前主页选择的房间对象
        /// </summary>
        private Room m_CurrentRoom = null;
        public Room NowMainPageRoom = null;
        /// <summary>
        /// 当前选择的房间
        /// 当前分类选择的房间对象
        /// </summary>
        public Room CurrentRoom
        {
            get
            {
                if (m_CurrentRoom == null && dicRooms.Count > 0)
                {
                    //设置初始值
                    foreach (var room in dicRooms.Values)
                    {
                        m_CurrentRoom = room;
                        break;
                    }
                }
                return m_CurrentRoom;
            }
            set { m_CurrentRoom = value; }
        }
        public Room NowCategoryRoom = null;
        /// <summary>
        /// 所有的房间信息
        /// </summary>
@@ -72,6 +54,9 @@
        /// </summary>
        public void InitAllRoom()
        {
            this.NowMainPageRoom = null;
            this.NowCategoryRoom = null;
            //清空本地缓存
            this.dicRooms.Clear();
            //检测我的喜爱这个房间对象
@@ -305,6 +290,10 @@
                Global.DeleteFilebyHomeId(roomFilePath);
            }
            HdlAutoBackupLogic.DeleteFile(roomFilePath);
            //根据房间ID,移除指定的真实物理设备的所属房间记录
            Common.LocalDevice.Current.DeleteRealDeviceByRoomId(roomId);
            //刷新房间视图列表
            this.RefreshRoomListView();
        }
@@ -591,8 +580,8 @@
            {
                return;
            }
            //从原来的房间移除设备
            this.DeleteDevice(device);
            //从原来的房间移除设备,这里不删除真实设备的房间
            this.DeleteDevice(device, false);
            //添加到新的房间
            var room = this.GetRoomById(roomId);
@@ -705,12 +694,20 @@
        /// 删除设备(这个函数不删除我的喜爱)
        /// </summary>
        /// <param name="device">要删除的设备对象</param>
        public void DeleteDevice(CommonDevice device)
        /// <param name="deleteReal">是否删除真实物理设备的房间</param>
        public void DeleteDevice(CommonDevice device, bool deleteReal = true)
        {
            if (device == null)
            {
                return;
            }
            //如果它只有一个回路
            if (deleteReal == true && LocalDevice.Current.GetDevicesCountByMac(device.DeviceAddr) == 1)
            {
                //删除掉它的真实物理设备的所在位置
                LocalDevice.Current.DeleteRealDeviceFromRoom(device);
            }
            //根据设备,获取所在的房间
            var room = this.GetRoomByDevice(device);
            if (room == null)
@@ -725,7 +722,7 @@
            HdlAutoBackupLogic.AddOrEditorFile(room.FileName);
            //递归:删除掉以前的旧数据导致的多个房间的问题
            this.DeleteDevice(device);
            this.DeleteDevice(device, deleteReal);
        }
        /// <summary>