HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2019-12-17 5986f63b75bd81c6cef262c670e9251c038cbf5d
ZigbeeApp/Shared/Common/Room.cs
@@ -323,15 +323,45 @@
                homeTemp.AddRoomListFilePath(fRoom);
            }
            var listRoomFile = new List<string>();
            foreach (string fileName in listFile)
            {
                if (fileName.StartsWith("Room_"))
                {
                    homeTemp.AddRoomListFilePath(fileName);
                    listRoomFile.Add(fileName);
                }
            }
            //检测楼层数据的合法性
            CheckFloorData(listRoomFile);
            homeTemp.Save(false);
            InitAllRoom();
        }
        /// <summary>
        /// 检测楼层数据的合法性
        /// </summary>
        /// <param name="listRoomFile"></param>
        private static void CheckFloorData(List<string> listRoomFile)
        {
            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);
                    //检测多个手机来回创建,然后又删除之后,楼层数据不能保证100%同步的问题
                    if (roomTemp.FloorId != string.Empty && Config.Instance.Home.FloorDics.ContainsKey(roomTemp.FloorId) == false)
                    {
                        //未知楼层
                        Config.Instance.Home.FloorDics[roomTemp.FloorId] = Language.StringByID(R.MyInternationalizationString.uUnKnownFloor);
                    }
                }
                catch (Exception ex) { HdlLogLogic.Current.WriteLog(ex); }
            }
        }
        #endregion
@@ -589,21 +619,25 @@
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public  List<Room> GetRoomsByFloorId(string id)
        public List<Room> GetRoomsByFloorId(string id)
        {
            return Lists.FindAll((obj) => obj.FloorId==id);
            if (Config.Instance.Home.FloorDics.Count == 0)
            {
                return Lists;
            }
            return Lists.FindAll((obj) => obj.FloorId == id);
        }
        /// <summary>
        /// 获取当前楼层的房间名称
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public  List<string> GetRoomNamesByFloorId(string id)
        public List<string> GetRoomNamesByFloorId(string id)
        {
            List<string> names = new List<string> { };
            foreach(var r in Lists)
            foreach (var r in Lists)
            {
                if(r.FloorId==id)
                if (r.FloorId == id)
                {
                    names.Add(r.Name);
                }
@@ -618,6 +652,10 @@
        /// <returns></returns>
        public  List<Room> GetRoomsByFloorIdAppendLoveRoom(string id)
        {
            if (Config.Instance.Home.FloorDics.Count == 0)
            {
                return Lists;
            }
            var r= Lists.FindAll((obj) => obj.FloorId == id);
            r.Insert(0, GetLoveRoom());
            return r;
@@ -853,6 +891,9 @@
            room.Save();
            //更改自动备份
            HdlAutoBackupLogic.AddOrEditorFile(room.FileName);
            //递归:删除掉以前的旧数据导致的多个房间的问题
            this.DeleteDevice(device);
        }
        #endregion
@@ -989,7 +1030,7 @@
                    return -1;
                }
            }
            var getSceneIdAllData = await ZigBee.Device.Scene.GetSceneNewIdAsync(sceneName);
            if (getSceneIdAllData == null || getSceneIdAllData.getSceneIdData == null)
            {
@@ -1474,6 +1515,6 @@
        }
        #endregion
    }
}