From 271015c6e90c195103cc7f34eda87966acd74dcc Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期日, 13 十二月 2020 20:46:12 +0800
Subject: [PATCH] 2020121301

---
 HDL_ON/Entity/DB_ResidenceData.cs |  156 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 130 insertions(+), 26 deletions(-)

diff --git a/HDL_ON/Entity/DB_ResidenceData.cs b/HDL_ON/Entity/DB_ResidenceData.cs
index aacf16e..c14cdec 100644
--- a/HDL_ON/Entity/DB_ResidenceData.cs
+++ b/HDL_ON/Entity/DB_ResidenceData.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
+using System.IO;
 using System.Threading;
 using HDL_ON.DAL.Server;
 using Shared;
@@ -16,34 +17,39 @@
         /// 涓讳汉token
         /// </summary>
         public string MasterToken;
+
+        RegionInfoRes _residecenInfo;
         /// <summary>
         /// 浣忓畢鍩虹淇℃伅
         /// </summary>
-        public RegionInfoRes residecenInfo
+        public RegionInfoRes CurrentRegion
         {
             get
             {
                 if (MainPage.NoLoginMode)
                 {
-                    return new RegionInfoRes() { Name = "鏈湴妯″紡" , };
+                    return new RegionInfoRes() { Name = "鏈湴妯″紡" };
                 }
                 else
                 {
-                    var curRegion = UserInfo.Current.regionList.Find((obj) => obj.RegionID == UserInfo.Current.CurReginID);
-                    if (curRegion == null)
+                    if (_residecenInfo == null)
                     {
                         if (UserInfo.Current.regionList != null && UserInfo.Current.regionList.Count > 0)
                         {
-                            UserInfo.Current.CurReginID = UserInfo.Current.regionList[0].RegionID;
-                            return UserInfo.Current.regionList[0];
+                            _residecenInfo = UserInfo.Current.regionList[0];
                         }
                         else
                         {
-                            return new RegionInfoRes();
+                            _residecenInfo = new RegionInfoRes();
+                            HDLCommon.Current.Logout();
                         }
                     }
-                    return curRegion;
+                    return _residecenInfo;
                 }
+            }
+            set
+            {
+                _residecenInfo = value;
             }
         }
 
@@ -83,7 +89,7 @@
         public List<ShowFunction> functionTypeList = new List<ShowFunction>();
 
         static DB_ResidenceData instance;
-        public static DB_ResidenceData residenceData
+        public static DB_ResidenceData Instance
         {
             get
             {
@@ -91,7 +97,7 @@
                 {
                     try
                     {
-                        var residenceDataBytes = Common.FileUtlis.Files.ReadFile("DB_ResidenceData");
+                        var residenceDataBytes = ReadResidenceInfo();
                         var userConfigString = System.Text.Encoding.UTF8.GetString(residenceDataBytes);
                         DB_ResidenceData temp = null;
 
@@ -111,12 +117,12 @@
                         {
                             instance.functionTypeList.AddRange(new List<ShowFunction> {
                                     ShowFunction.Light,ShowFunction.AC,ShowFunction.Curtain,
-                                    ShowFunction.FloorHeating,ShowFunction.DoorLock,
-                                    ShowFunction.Electric,ShowFunction.EnergyMonitoring,
-                                    ShowFunction.Environmental,
-                                    ShowFunction.FreshAir,ShowFunction.Music,
-                                    ShowFunction.Panel,ShowFunction.SecurityMonitoring,
-                                    ShowFunction.Sensor,ShowFunction.VideoIntercom
+                                    ShowFunction.FloorHeating,ShowFunction.Music,
+                                    ShowFunction.Electric,ShowFunction.Environmental,
+                                    //ShowFunction.EnergyMonitoring,
+                                    //ShowFunction.FreshAir,ShowFunction.DoorLock,
+                                    //ShowFunction.Panel,ShowFunction.SecurityMonitoring,
+                                    //ShowFunction.Sensor,ShowFunction.VideoIntercom
                                 });
                             instance.SaveResidenceData();
                         }
@@ -143,7 +149,7 @@
             instance = null;
             ins_OidList = null;
             HomeGateway = null;
-            SpatialInfo.CurrentSpatial.ClearRooms();
+            SpatialInfo.CurrentSpatial.Clear();
             FunctionList.List.Clear();
             if (MainPage.IsRemote)
             {
@@ -189,11 +195,11 @@
         {
             if (HomeGateway != null && !string.IsNullOrEmpty(HomeGateway.gatewayId))
             {
-                return true;
+                return false;
             }
             else
             {
-                return false;
+                return true;
             }
         }
 
@@ -256,10 +262,10 @@
         /// </summary>
         public void SaveResidenceData()
         {
-            if (this == null || this.residecenInfo == null)
+            if (this == null || this.CurrentRegion == null)
                 return;
             var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
-            Common.FileUtlis.Files.WriteFileByBytes("DB_ResidenceData", ssd);
+            WirteResidenceInfo(ssd);
         }
 
         /// <summary>
@@ -267,11 +273,109 @@
         /// </summary>
         public string CurFoor = Language.StringByID(StringId.All);
 
-        ///// <summary>
-        ///// 鎴块棿鍒楄〃
-        ///// </summary>
-        //[Newtonsoft.Json.JsonIgnore]
-        //public List<Room> Rooms = SpatialInfo.CurrentSpatial.RoomList;
+        /// <summary>
+        /// 鏍圭洰褰�
+        /// </summary>
+        static string RootPath = Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) + "/";
+        /// <summary>
+        /// 璇诲彇ResidenceInfo鏂囦欢
+        /// </summary>
+        /// <returns></returns>
+        static byte[] ReadResidenceInfo()
+        {
+            var fileName = "DB_ResidenceData";
+            FileStream fs = null;
+            try
+            {
+                var temp = CreateUserFloder(OnAppConfig.Instance.LastLoginUserId);
+                if (File.Exists(Path.Combine(temp, fileName)))
+                {
+                    fs = new FileStream(Path.Combine(temp, fileName), FileMode.Open, FileAccess.Read);
+                }
+                else if (File.Exists(fileName))
+                {
+                    fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
+                }
+                else
+                {
+                    return new byte[0];
+                }
+                byte[] bytes = new byte[fs.Length];
+                fs.Read(bytes, 0, bytes.Length);
+                return bytes;
+            }
+            catch
+            {
+                return new byte[0];
+            }
+            finally
+            {
+                try
+                {
+                    if (fs != null)
+                    {
+                        fs.Close();
+                    }
+                }
+                catch
+                {
+
+                }
+            }
+
+        }
+        /// <summary>
+        /// 淇濆瓨ResidenceInfo
+        /// </summary>
+        /// <param name="bytes"></param>
+        /// <returns></returns>
+        static bool WirteResidenceInfo(byte[] bytes)
+        {
+            var fileName = "DB_ResidenceData";
+            FileStream fs = null;
+
+            try
+            {
+                var temp = CreateUserFloder(OnAppConfig.Instance.LastLoginUserId);
+                fs = new FileStream(Path.Combine(temp, fileName), FileMode.Create, FileAccess.Write);
+                fs.Write(bytes, 0, bytes.Length);
+                fs.Flush();
+                MainPage.Log("SaveFile:" + fileName);
+                return true;
+            }
+            catch (Exception ex)
+            {
+                MainPage.Log("FileUtiles Code 113:" + ex.ToString());
+                return false;
+            }
+            finally
+            {
+                try
+                {
+                    if (fs != null)
+                    {
+                        fs.Close();
+                    }
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log("FileUtils Code 121 :" + ex.ToString());
+                }
+            }
+        }
+        /// <summary>
+        /// 鍒涘缓涓�涓綇瀹呯殑璐﹀彿鏂囦欢澶�
+        /// </summary>
+        static string CreateUserFloder(string userId)
+        {
+            var path = Path.Combine(RootPath, userId);
+            if (!Directory.Exists(path))
+            {
+                Directory.CreateDirectory(path);
+            }
+            return path + "/";
+        }
+
 
         #region oid鍒楄〃 a鍗忚杞琤us鍗忚鎺у埗浣跨敤
         /// <summary>

--
Gitblit v1.8.0