From f4c9d8aed59049476cfbf7b08e59936bbd80a6c9 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期二, 08 十二月 2020 17:27:53 +0800
Subject: [PATCH] 2020-12-08 1.增加分享设备的时候,判断当前房间分享设备总数,从而决定是否需要增加或者移除房间分享

---
 HDL_ON/Common/Constant.cs                                                          |    4 
 HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs    |   15 ++
 HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs |  241 +++++++++++++++++++++++++++------------
 .vs/HDL_APP_Project/xs/UserPrefs.xml                                               |   49 ++++----
 4 files changed, 207 insertions(+), 102 deletions(-)

diff --git a/.vs/HDL_APP_Project/xs/UserPrefs.xml b/.vs/HDL_APP_Project/xs/UserPrefs.xml
index ef261b8..2f4a81d 100644
--- a/.vs/HDL_APP_Project/xs/UserPrefs.xml
+++ b/.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,12 +1,24 @@
 锘�<Properties StartupConfiguration="{D998E133-F0DD-4760-BE3C-461632F54DA4}|Default">
   <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008030-00014C392121802E" />
-  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/Entity/UserInfo.cs">
+  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs">
     <Files>
       <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" Line="157" Column="54" />
-      <File FileName="HDL_ON/UI/UI1-Login/SelectServerDialog.cs" Line="74" Column="119" />
+      <File FileName="HDL_ON/UI/UI1-Login/SelectServerDialog.cs" Line="109" Column="37" />
       <File FileName="HDL_ON/DAL/Server/NewAPI.cs" Line="15" Column="29" />
-      <File FileName="HDL_ON/DAL/Server/HttpServerRequest.cs" Line="102" Column="40" />
-      <File FileName="HDL_ON/Entity/UserInfo.cs" Line="56" Column="39" />
+      <File FileName="HDL_ON/DAL/Server/HttpServerRequest.cs" Line="729" Column="51" />
+      <File FileName="HDL_ON/Entity/UserInfo.cs" Line="45" Column="13" />
+      <File FileName="HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs" Line="435" Column="1" />
+      <File FileName="HDL_ON/UI/MainPage.cs" Line="12" Column="19" />
+      <File FileName="HDL_ON/Common/Constant.cs" Line="199" Column="26" />
+      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPageBLL.cs" Line="1" Column="1" />
+      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/ChooseShareMemberTargetListPage.cs" Line="1" Column="1" />
+      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/ChooseShareMemberTargetListPageBLL.cs" Line="1" Column="1" />
+      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs" Line="76" Column="21" />
+      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs" Line="259" Column="34" />
+      <File FileName="HDL_ON/DAL/Server/NewApiRes.cs" Line="1334" Column="18" />
+      <File FileName="HDL_ON/Entity/Room.cs" Line="51" Column="23" />
+      <File FileName="HDL_ON/Entity/ResponseEntity/ResidenceMemberInfo.cs" Line="41" Column="32" />
+      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs" Line="219" Column="31" />
     </Files>
     <Pads>
       <Pad Id="ProjectPad">
@@ -15,32 +27,19 @@
             <Node name="HDL_ON" expanded="True">
               <Node name="Common" expanded="True" />
               <Node name="DAL" expanded="True">
-                <Node name="Mqtt" expanded="True" />
                 <Node name="Server" expanded="True" />
               </Node>
               <Node name="Entity" expanded="True">
-                <Node name="UserInfo.cs" selected="True" />
+                <Node name="ResponseEntity" expanded="True" />
               </Node>
               <Node name="UI" expanded="True">
-                <Node name="CSS" expanded="True" />
-                <Node name="UI0-Public" expanded="True">
-                  <Node name="Widget" expanded="True" />
-                </Node>
-                <Node name="UI1-Login" expanded="True" />
                 <Node name="UI2" expanded="True">
-                  <Node name="2-Classification" expanded="True" />
-                  <Node name="3-Intelligence" expanded="True">
-                    <Node name="Scene" expanded="True" />
-                  </Node>
                   <Node name="4-PersonalCenter" expanded="True">
-                    <Node name="AboutOn" expanded="True" />
-                    <Node name="AccountBindInfo" expanded="True" />
-                    <Node name="MemberManagement" expanded="True" />
-                    <Node name="ResetAccountPassword" expanded="True" />
-                  </Node>
-                  <Node name="FuntionControlView" expanded="True">
-                    <Node name="EnvironmentalScience" expanded="True" />
-                    <Node name="Music" expanded="True" />
+                    <Node name="MemberManagement" expanded="True">
+                      <Node name="MemberFunctionPermissionPage.cs" selected="True" />
+                    </Node>
+                    <Node name="RoomListManage" expanded="True" />
+                    <Node name="SearchDevice" expanded="True" />
                   </Node>
                 </Node>
               </Node>
@@ -66,7 +65,9 @@
   <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhone" />
   <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.822QECU5228FU" />
   <MonoDevelop.Ide.DebuggingService.Breakpoints>
-    <BreakpointStore />
+    <BreakpointStore>
+      <Breakpoint file="/Users/jlchen/JLChen/ProjectsCode/HDLGit/ON+/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs" relfile="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs" line="60" column="1" />
+    </BreakpointStore>
   </MonoDevelop.Ide.DebuggingService.Breakpoints>
   <MultiItemStartupConfigurations />
 </Properties>
\ No newline at end of file
diff --git a/HDL_ON/Common/Constant.cs b/HDL_ON/Common/Constant.cs
index 3d949c0..df7d457 100644
--- a/HDL_ON/Common/Constant.cs
+++ b/HDL_ON/Common/Constant.cs
@@ -210,6 +210,10 @@
         /// 
         /// </summary>
         SCENE,
+        /// <summary>
+        /// 
+        /// </summary>
+        LOGIC,
     }
 
     /// <summary>
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs
index 1e50762..172eb57 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs
@@ -35,8 +35,17 @@
 
         Action<string> refreshFunctionCount;
 
+        /// <summary>
+        /// 涔嬪墠鐨勫垎浜垪琛�
+        /// </summary>
         List<ShareData> funs;
+        /// <summary>
+        /// 灞炰簬褰撳墠鎴块棿鏈�缁堢殑璁惧鍒嗕韩鍒楄〃
+        /// </summary>
         List<ShareData> funs_New;
+        /// <summary>
+        /// 鍒犻櫎鐨勫垎浜垪琛�
+        /// </summary>
         List<ShareData> funs_Del;
 
         public MemberFunctionPermissionPage(ResidenceMemberInfo mInfo, Room r, Action<string> action)
@@ -180,9 +189,13 @@
                     Tag = "ChooseIcon"
                 };
                 roomView.AddChidren(btnChoose);
-                if (shareDatas.Find((obj) => obj.shareTypeId == function.deviceId) != null)
+
+                var shareData = shareDatas.Find((obj) => obj.shareTypeId == function.deviceId);
+                if (shareData != null)
                 {
                     btnChoose.IsSelected = true;
+                    //鍒锋柊灞炰簬褰撳墠鎴块棿鐨勫垎浜粺璁�
+                    funs_New.Add(shareData);
                 }
                 else
                 {
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs
index 2fafb92..0c37300 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs
@@ -26,94 +26,122 @@
                 {
                     new Thread(() =>
                     {
-                        bool result = false;
-                        Action act = () => { };
-                        Application.RunOnMainThread(() =>
+                        try
                         {
-                            act = new PublicAssmebly().TipLoadingMsgDialog(Language.StringByID(StringId.SavingPleaseWait));
-                        });
-                        //foreach (var f in funs_Del)
-                        //{
-                        //    LoadMethod_DelSharedData(f);
-                        //}
-                        //foreach (var f in funs_New)
-                        //{
-                        //    var sd = funs.Find((obj) => obj.shareTypeId == f.shareTypeId);
-                        //    //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝鏇存柊鍘熸湁鐨勬暟鎹�
-                        //    if (null != sd)
-                        //    {
-                        //        sd.ShareDataBytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(f));
-                        //        result = EditShareData(sd);
-                        //    }
-                        //    else//濡傛灉璇ュ姛鑳芥湭琚垎浜紝鍒欐柊澧炲垎浜�
-                        //    {
-                        //        result = LoadMethod_AddShareData(f);
-                        //    }
-                        //    if (!result)
-                        //    {
-                        //        Application.RunOnMainThread(() =>
-                        //        {
-                        //            new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingFailed), true);
-                        //        });
-                        //    }
-                        //}
-
-                        //1.鎵归噺鍒犻櫎鍒嗕韩
-                        var deleteShareObj = new DeleteShareObj() {
-                            shareDatas = funs_Del,
-                            homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
-                        };
-                        LoadMethod_DelSharedData(deleteShareObj);
-
-                        //2.鎵归噺涓婁紶
-                        var funs_NeedAdd = new List<ShareData>();
-                        foreach (var f in funs_New)
-                        {
-                            var sd = funs.Find((obj) => obj.shareTypeId == f.shareTypeId);
-                            //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝鏇存柊鍘熸湁鐨勬暟鎹�
-                            if (null == sd)
+                            bool result = false;
+                            Action act = () => { };
+                            Application.RunOnMainThread(() =>
                             {
-                                funs_NeedAdd.Add(f);
+                                act = new PublicAssmebly().TipLoadingMsgDialog(Language.StringByID(StringId.SavingPleaseWait));
+                            });
+
+                            //1.绠$悊鎴块棿鍒嗕韩
+                            if (funs_New != null && funs_New.Count > 0)
+                            {
+                                //鍒嗕韩璁惧澶т簬0
+                                var success = ShareRoom();
+                                if (success)
+                                {
+                                    Utlis.WriteLine("娣诲姞鎴块棿鍒嗕韩鎴愬姛");
+                                }
+                                else
+                                {
+                                    Utlis.WriteLine("娣诲姞鎴块棿鍒嗕韩澶辫触");
+                                }
                             }
-                        }
+                            else
+                            {
+                                var success = DeleteShareRoom();
+                                if (success)
+                                {
+                                    Utlis.WriteLine("鍒犻櫎鎴块棿鍒嗕韩鎴愬姛");
+                                }
+                                else
+                                {
+                                    Utlis.WriteLine("鍒犻櫎鎴块棿鍒嗕韩澶辫触");
+                                }
+                            }
 
-                        List<string> childAccountIds = new List<string>();
-                        childAccountIds.Add(memberInfo.childAccountId);
-                        var addShareObj = new AddShareObj()
-                        {
-                            shareDatas = funs_NeedAdd,
-                            childAccountIds = childAccountIds,
-                            homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
-                        };
-                        result = LoadMethod_AddShareData(addShareObj);
+                            //2.鎵归噺鍒犻櫎鍒嗕韩
+                            var deleteShareObj = new DeleteShareObj()
+                            {
+                                shareDatas = funs_Del,
+                                homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
+                            };
+                            LoadMethod_DelSharedData(deleteShareObj);
 
-                        if (!result)
-                        {
+                            //3.鎵归噺涓婁紶
+                            var funs_NeedAdd = new List<ShareData>();
+                            foreach (var f in funs_New)
+                            {
+                                var sd = funs.Find((obj) => obj.shareTypeId == f.shareTypeId);
+                                //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝涓嶇敤鍒嗕韩
+                                if (null == sd)
+                                {
+                                    funs_NeedAdd.Add(f);
+
+                                }
+                            }
+
+                            List<string> childAccountIds = new List<string>();
+                            childAccountIds.Add(memberInfo.childAccountId);
+                            var addShareObj = new AddShareObj()
+                            {
+                                shareDatas = funs_NeedAdd,
+                                childAccountIds = childAccountIds,
+                                homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
+                            };
+                            result = LoadMethod_AddShareData(addShareObj);
+
+                            if (!result)
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingFailed), true);
+                                });
+                            }
+
+
                             Application.RunOnMainThread(() =>
                             {
-                                new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingFailed), true);
+                                act();
                             });
-                        }
-
-
-                        Application.RunOnMainThread(() =>
-                        {
-                            act();
-                        });
-                        if (result)
-                        {
-                            Application.RunOnMainThread(() =>
+                            if (result)
                             {
-                                new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true);
-                                memberInfo.CurResidenceShareDate = funs_New;
-                            });
-                            Thread.Sleep(1600);
-                            Application.RunOnMainThread(() =>
-                            {
+                                //4.1绠$悊鏈�缁堢殑鍒嗕韩鍒楄〃
+                                var funs_final = new List<ShareData>();
+                                funs_final.AddRange(funs);
+                                //4.2绉婚櫎鍒犻櫎鐨�
+                                foreach (var share_d in funs_Del)
+                                {
+                                    var sd = funs_final.Find((obj) => obj.shareTypeId == share_d.shareTypeId);
+                                    //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝涓嶇敤鍒嗕韩
+                                    if (null != sd)
+                                    {
+                                        funs_final.Remove(share_d);
+                                    }
+                                }
+                                //4.3娣诲姞鏂板鐨�
+                                funs_final.AddRange(funs_NeedAdd);
+
+                                Application.RunOnMainThread(() =>
+                                {
+                                    new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true);
+                                    memberInfo.CurResidenceShareDate = funs_final;
+                                });
+                                Thread.Sleep(1600);
+                                Application.RunOnMainThread(() =>
+                                {
                                 //MainPage.BasePageView.RemoveAt(MainPage.BasePageView.ChildrenCount - 1);
                                 MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
-                                refreshFunctionCount?.Invoke(funs_New.Count.ToString());
-                            });
+                                    refreshFunctionCount?.Invoke(funs_New.Count.ToString());
+                                });
+                            }
+                        }
+                        catch { }
+                        finally
+                        {
+
                         }
                     })
                     { IsBackground = true }.Start();
@@ -167,6 +195,65 @@
             }
         }
 
+        /// <summary>
+        /// 鍒嗕韩鎴块棿
+        /// </summary>
+        /// <returns></returns>
+        bool ShareRoom()
+        {
+            var roomList = new List<ShareData>();
+            roomList.Add(new ShareData() {
+                shareType = ShareType.ROOM.ToString(),
+                shareTypeId = room.roomId
+            });
+            List<string> childAccountIds = new List<string>();
+            childAccountIds.Add(memberInfo.childAccountId);
+            var addShareObj = new AddShareObj()
+            {
+                childAccountIds = childAccountIds,
+                homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
+                shareDatas = roomList
+            };
+            var responePack = new HttpServerRequest().AddShareData(addShareObj);
+            if (responePack.Code != StateCode.SUCCESS)
+            {
+                return false;
+            }
+            else
+            {
+                return true;
+            }
+        }
+
+        /// <summary>
+        /// 鍒犻櫎鎴块棿鍒嗕韩
+        /// </summary>
+        /// <returns></returns>
+        bool DeleteShareRoom()
+        {
+            var roomList = new List<ShareData>();
+            roomList.Add(new ShareData()
+            {
+                shareType = ShareType.ROOM.ToString(),
+                shareTypeId = room.roomId
+            });
+
+            var deleteShareObj = new DeleteShareObj()
+            {
+                shareDatas = roomList,
+                homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
+            };
+            var responePack = new HttpServerRequest().DeleteShareData(deleteShareObj);
+            if (responePack.Code != StateCode.SUCCESS)
+            {
+                return false;
+            }
+            else
+            {
+                return true;
+            }
+        }
+
         ///// <summary>
         ///// 鏇存柊鍏变韩鏁版嵁
         ///// </summary>

--
Gitblit v1.8.0