From 611786df5108dca0bdcff03834cc285cba4b8e61 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 13 十月 2020 16:48:43 +0800
Subject: [PATCH] 2020-10-13-1

---
 HDL_ON/UI/UI2/4-PersonalCenter/ResidentialManage/RoomEditPageBLL.cs |  225 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 194 insertions(+), 31 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/ResidentialManage/RoomEditPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/ResidentialManage/RoomEditPageBLL.cs
index a2d5576..e329801 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/ResidentialManage/RoomEditPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/ResidentialManage/RoomEditPageBLL.cs
@@ -1,5 +1,7 @@
 锘縰sing System;
 using Shared;
+using HDL_ON.Entity;
+using System.Collections.Generic;
 
 namespace HDL_ON.UI
 {
@@ -13,6 +15,74 @@
             LoadEvent_PictureOptionView();
             LoadEvent_EditRoomName();
             LoadEvent_SkinBindFloor();
+            LoadEvent_SkipEditFunctionList();
+            LoadEvent_Option();
+            LoadEvent_SkipSharedRoomFunctionPage();
+        }
+
+        /// <summary>
+        /// 搴曢儴鎸夐挳浜嬩欢
+        /// </summary>
+        void LoadEvent_Option()
+        {
+            btnOption.MouseUpEventHandler += (sender, e) =>
+            {
+                if (btnOption.TextID == StringId.Save)
+                {
+                    if (string.IsNullOrEmpty(room.name))
+                    {
+                        new Tip()
+                        {
+                            CloseTime = 3,
+                            Text = Language.StringByID(StringId.RoomNameCannotBeEmpty),
+                            Direction = AMPopTipDirection.None,
+                        }.Show(bodyView);
+                        return;
+                    }
+                    if(string.IsNullOrEmpty( room.floor))
+                    {
+                        new Tip()
+                        {
+                            CloseTime = 3,
+                            Text = Language.StringByID(StringId.PlsBindFloor),
+                            Direction = AMPopTipDirection.None,
+                        }.Show(bodyView);
+                        return;
+                    }
+                    foreach (var tempRoom in DB_ResidenceData.residenceData.rooms)
+                    {
+                        if (room.name == tempRoom.name)
+                        {
+                            new PublicAssmebly().TipMsg(StringId.Tip, StringId.AddingFailed_RoomAlreadyExists);
+                            return;
+                        }
+                    }
+                    room.sid = Guid.NewGuid().ToString();
+                    DB_ResidenceData.residenceData.rooms.Add(room);
+                    DB_ResidenceData.residenceData.SaveResidenceData();
+                    backAction();
+                    this.RemoveFromParent();
+                }
+                if (btnOption.TextID == StringId.DeleteRoom)
+                {
+                    Action action = () =>
+                    {
+                        foreach (var f in DB_ResidenceData.residenceData.functionList.functions)
+                        {
+                            if (f.roomIdList.Contains(room.sid))
+                            {
+                                f.roomIdList.Remove(room.sid);
+                            }
+                        }
+                        room.sid = "";
+                        DB_ResidenceData.residenceData.rooms.Remove(room);
+                        DB_ResidenceData.residenceData.SaveResidenceData();
+                        backAction();
+                        this.RemoveFromParent();
+                    };
+                    new PublicAssmebly().TipMsg(StringId.Tip, StringId.DeleteRoomTip, action);
+                };
+            };
         }
 
         /// <summary>
@@ -33,15 +103,43 @@
         {
             Action<string> callBack = (str) =>
             {
+                //鎴块棿鍚嶇О涓嶈兘涓虹┖
+                if (string.IsNullOrEmpty(str))
+                {
+                    new Tip()
+                    {
+                        CloseTime = 3,
+                        Text = Language.StringByID(StringId.RoomNameCannotBeEmpty),
+                        Direction = AMPopTipDirection.None,
+                    }.Show(bodyView);
+                    return;
+                }
                 btnRoomName.Text = btnTipRoomName.Text = str;
                 room.name = str;
+                if (pageTitleId == StringId.EditRoomInfo)
+                {
+                    DB_ResidenceData.residenceData.SaveResidenceData();
+                }
             };
             EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
             {
-                new PublicAssmebly().LoadDialog_EditParater(StringId.RoomName, room.name, callBack);
+                List<string> roomNameList = new List<string>();
+                foreach(var rroom in DB_ResidenceData.residenceData.rooms)
+                {
+                    roomNameList.Add(rroom.name);
+                }
+                if (pageTitleId == StringId.AddRoom)
+                {
+                    new PublicAssmebly().LoadDialog_EditParater(StringId.RoomName, room.name, callBack, StringId.RoomNameCannotBeEmpty, StringId.AddingFailed_RoomAlreadyExists, roomNameList);
+                }
+                else
+                {
+                    new PublicAssmebly().LoadDialog_EditParater(StringId.RoomName, room.name, callBack, StringId.RoomNameCannotBeEmpty, StringId.EidtFailed_RoomAlreadyExists, roomNameList);
+                }
             };
             btnEditRoomNameIcon.MouseUpEventHandler = eventHandler;
             roomNameRow.MouseUpEventHandler = eventHandler;
+            btnRoomName.MouseUpEventHandler = eventHandler;
         }
 
         /// <summary>
@@ -49,8 +147,13 @@
         /// </summary>
         void LoadEvent_SkinBindFloor()
         {
-            EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
-                var residentialManagePage = new FloorsManagementPage();
+            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+            {
+                Action floorsCallBackAction = () =>
+                {
+                    btnFloorInfo.Text = room.floor;
+                };
+                var residentialManagePage = new FloorsManagementPage(floorsCallBackAction);
                 MainPage.BasePageView.AddChidren(residentialManagePage);
                 residentialManagePage.LoadPage(room);
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
@@ -59,7 +162,48 @@
             floorView.MouseUpEventHandler = eventHandler;
         }
 
+        /// <summary>
+        /// 璺宠浆鍒扮紪杈戞埧闂村姛鑳界晫闈�
+        /// </summary>
+        void LoadEvent_SkipEditFunctionList()
+        {
+            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+            {
+                var residentialManagePage = new RoomEditFunctionPage(room);
+                MainPage.BasePageView.AddChidren(residentialManagePage);
+                residentialManagePage.LoadPage();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+            btnFunctionManagementRight.MouseUpEventHandler = eventHandler;
+            functionManagemantView.MouseUpEventHandler = eventHandler;
+        }
 
+        /// <summary>
+        /// 璺宠浆鍒板姛鑳藉垎浜晫闈�
+        /// </summary>
+        void LoadEvent_SkipSharedRoomFunctionPage()
+        {
+            EventHandler<MouseEventArgs> eHandler = (sender, e) =>
+            {
+                List<ShareData> sds = new List<ShareData>();
+                foreach (var f in room.functions)
+                {
+                    var sd = new ShareData();
+                    sd.ShareName = f.sid;
+                    sd.HouseDistributedMark = DB_ResidenceData.residenceData.residecenInfo.RegionID;
+                    sd.ShareDataBytes = DAL.CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(f));
+                    //ssdd.SubAccountDistributedMark = memberInfo.SubAccountDistributedMark;
+                    sds.Add(sd);
+                }
+                var mmp = new MemberFunctionPermissionPage(room, sds);
+                MainPage.BasePageView.AddChidren(mmp);
+                mmp.LoadPage(StringId.ChooseSharedFunction);
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+            btnSharedRight.MouseUpEventHandler = eHandler;
+            sharedView.MouseUpEventHandler = eHandler;
+            btnSharedTitle.MouseUpEventHandler = eHandler;
+        }
         /// <summary>
         /// 鍔犺浇鑳屾櫙鍥鹃�夋嫨鍖哄煙浜嬩欢鍒楄〃
         /// </summary>
@@ -70,39 +214,58 @@
                 pictureOptionView.RemoveFromParent();
             };
 
-            btnCancel.MouseUpEventHandler = (sender, e) => {
-                optionView.Animate = Animate.UpToDown;
-                btnCancel.Animate = Animate.UpToDown;
-                new System.Threading.Thread(() =>
+            btnCancel.MouseUpEventHandler = (sender, e) =>
+            {
+                pictureOptionView.RemoveFromParent();
+            };
+            btnTakePicture.MouseDownEventHandler = (sender, e) => {
+                btnTakePicture.IsSelected = true;
+            };
+            btnTakePicture.MouseUpEventHandler = (sender, e) =>
+            {
+                btnTakePicture.IsSelected = false;
+                var pid = Guid.NewGuid();
+                CropImage.TakePicture((imagePath) =>
                 {
-                    System.Threading.Thread.Sleep(500);
-                    Application.RunOnMainThread(() =>
+                    if (imagePath != null)
                     {
-                        pictureOptionView.RemoveFromParent();
-                    });
-                })
-                { IsBackground = true }.Start();
+                        btnRoomBg.UnSelectedImagePath = imagePath.ToString();
+                        room.backgroundImage = btnRoomBg.UnSelectedImagePath;
+                        MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
+                    }
+                }, pid.ToString(), 16, 9);
+                if (pageTitleId == StringId.EditRoomInfo)
+                {
+                    DB_ResidenceData.residenceData.SaveResidenceData();
+                }
+                pictureOptionView.RemoveFromParent();
+            };
+            btnAlbum.MouseDownEventHandler = (sender, e) => {
+                btnAlbum.IsSelected = true;
             };
 
-            btnTakePicture.MouseUpEventHandler = (sender, e) => {
+            btnAlbum.MouseUpEventHandler = (sender, e) =>
+            {
+                btnAlbum.IsSelected = false;
                 var pid = Guid.NewGuid();
-                Camera.TakePicture((obj) => {
-                    if (obj == null)
-                        return;
-                    btnRoomBg.UnSelectedImagePath = pid.ToString();
-                },pid.ToString(),false);
+                CropImage.SelectPicture((imagePath) =>
+                {
+                    if (imagePath != null)
+                    {
+                        btnRoomBg.UnSelectedImagePath = imagePath.ToString();
+                        room.backgroundImage = btnRoomBg.UnSelectedImagePath;
+                        MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
+#if DEBUG
+                        new Tip() { CloseTime = 5, Text = imagePath }.Show(MainPage.BasePageView);
+#endif
+                    }
+                }, pid.ToString(), 16, 9);
+                if (pageTitleId == StringId.EditRoomInfo)
+                {
+                    DB_ResidenceData.residenceData.SaveResidenceData();
+                }
+                pictureOptionView.RemoveFromParent();
             };
-
-            btnAlbum.MouseUpEventHandler = (sender, e) => {
-                var pid = Guid.NewGuid();
-                Camera.SelectPicture((obj) => {
-                    if (obj == null)
-                        return;
-                    btnRoomBg.UnSelectedImagePath = pid.ToString();
-                }, pid.ToString(), false);
-            };
-
-
         }
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0