陈嘉乐
2020-07-10 48ba446936b51fffafa7c3600c0dadc6ac0e8c20
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs
@@ -365,6 +365,8 @@
                }
            }
            //清空楼层数据
            Common.Config.Instance.Home.FloorDics.Clear();
            //然后检测本地的文件
            var listLocalFile = Global.FileListByHomeId();
            foreach (string fileName in listLocalFile)
@@ -375,8 +377,7 @@
                    var varData = Global.ReadFileByHomeId(fileName);
                    var dicFloor = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(Encoding.UTF8.GetString(varData));
                    Common.Config.Instance.Home.FloorDics = dicFloor;
                    Common.Config.Instance.Home.Save(false);
                    //暂时不保存,留在最后面才保存
                    Global.DeleteFilebyHomeId(fileName);
                }
@@ -425,6 +426,10 @@
                    dicUpdateTime.Remove(fileName);
                }
            }
            //保存楼层数据
            Common.Config.Instance.Home.Save(false);
            //网关文件非合法性是刷新设备列表的函数里面实现
            //保存全部分享文件的更新日期
@@ -446,7 +451,7 @@
        private Dictionary<string, string> GetAllShardFileAgoUpdateTime()
        {
            var dicTime = new Dictionary<string, string>();
            var data = Global.ReadFileByDirectory(DirNameResourse.LocalMemoryDirectory, DirNameResourse.ShardFileUpdateFile);
            var data = Global.ReadFileByDirectory(DirNameResourse.LocalMemoryDirectory, DirNameResourse.ShardFileUpdateTimeFile);
            if (data == null)
            {
                //目标文件不存在
@@ -464,7 +469,7 @@
        {
            var data = Newtonsoft.Json.JsonConvert.SerializeObject(dicTime);
            var byteData = System.Text.Encoding.UTF8.GetBytes(data);
            Global.WriteFileToDirectoryByBytes(DirNameResourse.LocalMemoryDirectory, DirNameResourse.ShardFileUpdateFile, byteData);
            Global.WriteFileToDirectoryByBytes(DirNameResourse.LocalMemoryDirectory, DirNameResourse.ShardFileUpdateTimeFile, byteData);
        }
        #endregion
@@ -655,7 +660,7 @@
                    var tempUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.SceneUI>(valueData);
                    //获取场景里面的全部目标(2019.11.05追加操作,有可能那个设备是由场景嵌套来的,所以它有可能不属于任何房间)
                    foreach (var data in tempUi.AddSceneMemberDataList)
                    foreach (var data in tempUi.AdjustTargetList)
                    {
                        //设备
                        if (data.Type == 0)
@@ -952,7 +957,7 @@
        /// <returns></returns>
        public void GetSceneDeviceList(Common.SceneUI scene, HashSet<string> listCheck, List<Common.SceneUI> listSceneUI, List<CommonDevice> listDevice)
        {
            foreach (var data in scene.AddSceneMemberDataList)
            foreach (var data in scene.AdjustTargetList)
            {
                //设备
                if (data.Type == 0)
@@ -1412,7 +1417,11 @@
                int floorCount = 0;
                foreach (var myRoom in memberShardInfo.dicShardRoom.Values)
                {
                    if (myRoom.FloorId == roomTemp.FloorId) { floorCount++; }
                    //2020.03.24追加:不能是自身房间
                    if (myRoom.FloorId == roomTemp.FloorId && myRoom.Id != roomTemp.Id)
                    {
                        floorCount++;
                    }
                }
                if (floorCount == 0)
                {
@@ -1421,7 +1430,6 @@
                    //执行上传对象
                    result = await this.DoUploadFloorObject(memberShardInfo);
                }
            }
            if (result == false)
@@ -1695,7 +1703,7 @@
        /// <param name="listBindScene">绑定的场景对象</param>
        private void GetSceneBindListKeys(Common.SceneUI scene, ref Dictionary<string, string> dicDeviceKeys, ref List<SceneUI> listBindScene)
        {
            foreach (var data in scene.AddSceneMemberDataList)
            foreach (var data in scene.AdjustTargetList)
            {
                //设备
                if (data.Type == 0)
@@ -1726,7 +1734,7 @@
        /// <param name="listKeys">主键列表(设备和场景)</param>
        private void GetSceneBindListKeys(Common.SceneUI scene, ref HashSet<string> listKeys)
        {
            foreach (var data in scene.AddSceneMemberDataList)
            foreach (var data in scene.AdjustTargetList)
            {
                //设备
                if (data.Type == 0)