2020-12-08 1.增加分享设备的时候,判断当前房间分享设备总数,从而决定是否需要增加或者移除房间分享
4个文件已修改
309 ■■■■■ 已修改文件
.vs/HDL_APP_Project/xs/UserPrefs.xml 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/Constant.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.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>
HDL_ON/Common/Constant.cs
@@ -210,6 +210,10 @@
        /// 
        /// </summary>
        SCENE,
        /// <summary>
        ///
        /// </summary>
        LOGIC,
    }
    /// <summary>
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
                {
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>