陈嘉乐
2020-07-10 48ba446936b51fffafa7c3600c0dadc6ac0e8c20
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();
            //检测我的喜爱这个房间对象
@@ -143,7 +128,7 @@
        {
            Application.RunOnMainThread(() =>
            {
                MainPage.ListRoomViewFrom.Instance?.ShowForm();
                MainPage.ListRoomViewFrom.Instance?.RefreshListRoom();
            });
        }
@@ -305,6 +290,10 @@
                Global.DeleteFilebyHomeId(roomFilePath);
            }
            HdlAutoBackupLogic.DeleteFile(roomFilePath);
            //根据房间ID,移除指定的真实物理设备的所属房间记录
            Common.LocalDevice.Current.DeleteRealDeviceByRoomId(roomId);
            //刷新房间视图列表
            this.RefreshRoomListView();
        }
@@ -582,6 +571,10 @@
            {
                //从原来的房间移除设备
                this.DeleteDevice(device);
                //移除我的喜爱
                this.DeleteLoveDevice(device);
                //设备改变房间的话,主页需要重新刷新
                UserView.UserPage.Instance.RefreshForm = true;
                return;
            }
            //房间是否修改
@@ -589,8 +582,8 @@
            {
                return;
            }
            //从原来的房间移除设备
            this.DeleteDevice(device);
            //从原来的房间移除设备,这里不删除真实设备的房间
            this.DeleteDevice(device, false);
            //添加到新的房间
            var room = this.GetRoomById(roomId);
@@ -598,6 +591,8 @@
            {
                this.AddDevice(room, device, saveRealRoom);
            }
            //设备改变房间的话,主页需要重新刷新
            UserView.UserPage.Instance.RefreshForm = true;
        }
        /// <summary>
@@ -627,7 +622,7 @@
            {
                return i_room.Name;
            }
            var floorName = Config.Instance.Home.GetFloorNameById(i_room.FloorId);
            var floorName = HdlResidenceLogic.Current.GetFloorNameById(i_room.FloorId);
            if (floorName == null)
            {
                return i_room.Name;
@@ -701,12 +696,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)
@@ -721,7 +724,7 @@
            HdlAutoBackupLogic.AddOrEditorFile(room.FileName);
            //递归:删除掉以前的旧数据导致的多个房间的问题
            this.DeleteDevice(device);
            this.DeleteDevice(device, deleteReal);
        }
        /// <summary>
@@ -921,7 +924,7 @@
        #region ■ 楼层和房间顺序相关_________________
        /// <summary>
        /// 根据楼层的主键获取排序后的房间列表(支持无楼层模式)
        /// 根据楼层的主键获取排序后的房间列表(支持无楼层模式,不获取收藏房间)
        /// </summary>
        /// <param name="i_floorKeys">楼层的主键</param>
        /// <param name="getShard">分享的房间是否也获取</param>