From 53189866ba4012fec0b40990fd2281b836fa2668 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 01 七月 2020 16:29:16 +0800
Subject: [PATCH] 20200701

---
 HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs |   83 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 75 insertions(+), 8 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
index 0df87a0..77e9d49 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -102,13 +102,11 @@
 
             };
 #endif
-
-
-            btnCurResidenceName.MouseUpEventHandler += (sender, e) => {
+            EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
                 var dialog = new Dialog();
                 var dialogBody = new FrameLayout();
                 dialog.AddChidren(dialogBody);
-                dialogBody.MouseUpEventHandler += (sender1, e1) => {
+                dialogBody.MouseUpEventHandler = (sender1, e1) => {
                     dialog.Close();
                 };
 
@@ -164,15 +162,84 @@
                     {
                         var regionId = (string)btnHomeName.Tag;
                         dialog.Close();
-
-                        DB_ResidenceData.residenceData.CurReginID = regionId;
-                        btnCurResidenceName.Text = DB_ResidenceData.residenceData.residecenInfo.Name;
-                        OnAppConfig.Instance.SaveUserConfig();
+                        LoadEvent_ChangeCurHome(MainPage.LoginUser.regionList.Find((obj) => obj.RegionID == regionId));
+                
                     };
                 }
 
                 dialog.Show();
             };
+
+            btnResidenceDownIcon.MouseUpEventHandler = eventHandler;
+            btnCurResidenceName.MouseUpEventHandler = eventHandler;
+        }
+
+        void LoadEvent_ChangeCurHome(RegionInfoRes homeTemp)
+        {
+            if (DB_ResidenceData.residenceData.CurReginID == homeTemp.RegionID)
+            {
+                return;
+            }
+            var waitPage = new Loading();
+            new System.Threading.Thread(() =>
+            {
+                try
+                {
+                    var backuplist = FileUtils.ReadFiles();
+                    int index = 0;
+                    string oldRegionRootPath = FileUtils.CreateRegionBackup(DB_ResidenceData.residenceData.CurReginID.ToString());
+                    FileUtils.DeleteRegionFiles(oldRegionRootPath);
+                    foreach (var fileName in backuplist)
+                    {
+                        System.IO.FileInfo fileInfo = new System.IO.FileInfo(FileUtils.RootPath + fileName);
+                        if (fileInfo.Exists)
+                        {
+                            fileInfo.MoveTo(oldRegionRootPath + fileName);
+                            MainPage.Log("move file : " + fileName);
+                        }
+                        index++;
+                        Application.RunOnMainThread(() =>
+                        {
+                            int pro = (int)(index * 1.0 / backuplist.Count * 50);
+                            waitPage.Text = pro.ToString() + "%";
+                        });
+                    }
+                    FileUtils.DeleteAllFile();
+                    //鍊掑嚭鏂颁綇瀹呮暟鎹�
+                    string newRegionRootPath = FileUtils.CreateRegionBackup(homeTemp.RegionID.ToString());
+                    FileUtils.RestoreRegionFiles(newRegionRootPath);
+                    MainPage.LoginUser.SaveUserInfo();
+                    DB_ResidenceData.residenceData.EixtAccount();
+                    DB_ResidenceData.residenceData.CurReginID = homeTemp.RegionID;
+                    OnAppConfig.Instance.SaveUserConfig();
+                    DB_ResidenceData.InitRoomFunction();
+                    DB_ResidenceData.residenceData.SaveResidenceData();
+                    Application.RunOnMainThread(() =>
+                    {
+                        btnCurResidenceName.Text = DB_ResidenceData.residenceData.residecenInfo.Name;
+                        //new Alert(Language.StringByID(StringId.Tip), Language.StringByID(StringId.SwitchRegionSuccessfully),
+                        //          Language.StringByID(StringId.Close)).Show();
+                    });
+                }
+                catch (Exception ex)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        new Alert(Language.StringByID(StringId.Tip), Language.StringByID(StringId.OperationFailed),
+                                   Language.StringByID(StringId.Close)).Show();
+                    });
+                    MainPage.Log(ex.Message);
+                }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        waitPage.Hide();
+                        waitPage.RemoveFromParent();
+                    });
+                }
+            })
+            { IsBackground = true }.Start();
         }
 
         #endregion

--
Gitblit v1.8.0