wxr
2020-07-01 53189866ba4012fec0b40990fd2281b836fa2668
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