黄学彪
2020-04-14 463cf39019aa54e6c1226be4620766a035a0c490
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs
@@ -123,7 +123,14 @@
                }
            }
            //检测楼层数据的合法性
            this.CheckFloorData(listRoomFile);
            if (UserCenterResourse.UserInfo.AuthorityNo == 3)
            {
                this.CheckMemberFloorData(listRoomFile);
            }
            else
            {
                this.CheckAdminFloorData(listRoomFile);
            }
            homeTemp.Save(false);
            InitAllRoom();
@@ -144,8 +151,12 @@
        /// 检测楼层数据的合法性
        /// </summary>
        /// <param name="listRoomFile"></param>
        private void CheckFloorData(List<string> listRoomFile)
        private void CheckAdminFloorData(List<string> listRoomFile)
        {
            //没有楼层,则无需处理
            if (Config.Instance.Home.FloorDics.Count == 0) { return; }
            //主人或者管理员的话,就检测是否存在未分配楼层的房间
            for (int i = 0; i < listRoomFile.Count; i++)
            {
                try
@@ -165,6 +176,49 @@
            }
        }
        /// <summary>
        /// 检测楼层数据的合法性
        /// </summary>
        /// <param name="listRoomFile"></param>
        private void CheckMemberFloorData(List<string> listRoomFile)
        {
            //没有楼层,则无需处理
            if (Config.Instance.Home.FloorDics.Count == 0) { return; }
            //成员的话,就检测是否存在没有房间的楼层
            var listEsixtFloor = new List<string>();
            for (int i = 0; i < listRoomFile.Count; i++)
            {
                try
                {
                    var byteData = Global.ReadFileByHomeId(listRoomFile[i]);
                    string valueData = System.Text.Encoding.UTF8.GetString(byteData);
                    var roomTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.Room>(valueData);
                    if (roomTemp.FloorId != string.Empty && listEsixtFloor.Contains(roomTemp.FloorId) == false)
                    {
                        //收集楼层
                        listEsixtFloor.Add(roomTemp.FloorId);
                    }
                }
                catch (Exception ex) { HdlLogLogic.Current.WriteLog(ex); }
            }
            var listDeleteId = new List<string>();
            foreach (var flootId in Config.Instance.Home.FloorDics.Keys)
            {
                if (listEsixtFloor.Contains(flootId) == false)
                {
                    //如果这个id不存在于任何房间的话,收集它
                    listDeleteId.Add(flootId);
                }
            }
            foreach (var deleteId in listDeleteId)
            {
                //删除这个id
                Config.Instance.Home.FloorDics.Remove(deleteId);
            }
            Config.Instance.Home.Save(false);
        }
        #endregion
        #region ■ 添加房间___________________________