wxr
2020-12-18 5ea6aa8ea047d4d7b6137fa86c03109aeb1b67ff
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs
@@ -22,19 +22,31 @@
        {
            btnOption.MouseUpEventHandler = (sender, e) =>
            {
                if (titleId == StringId.PermissionToUse)//从个人中心进入单独分享
                Action action = () =>
                {
                    UploadShareDeviceList();
                }
                else
                {
                    //var sharedBytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(funs_New));
                    //2020-12-01 屏蔽页面
                    //var page = new ChooseShareMemberTargetListPage(funs_New, memberInfo);
                    //MainPage.BasePageView.AddChidren(page);
                    //page.LoadPage();
                    //MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                }
                };
                //是否需要保存
                new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.IfNeedToSave, action);
                //if (titleId == StringId.PermissionToUse)//从个人中心进入单独分享
                //{
                //    Action action = () =>
                //    {
                //        UploadShareDeviceList();
                //    };
                //    //是否需要保存
                //    new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.IfNeedToSave, action);
                //}
                //else
                //{
                //    //var sharedBytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(funs_New));
                //    //2020-12-01 屏蔽页面
                //    //var page = new ChooseShareMemberTargetListPage(funs_New, memberInfo);
                //    //MainPage.BasePageView.AddChidren(page);
                //    //page.LoadPage();
                //    //MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                //}
            };
        }
@@ -55,32 +67,12 @@
                        act = new PublicAssmebly().TipLoadingMsgDialog(Language.StringByID(StringId.SavingPleaseWait));
                    });
                    //1.管理最终属于房间的分享
                    if (funs_New != null && funs_New.Count > 0)
                    if (!string.IsNullOrEmpty(roomId))
                    {
                        //最终属于房间的分享大于0
                        var success = ShareRoom();
                        if (success)
                        {
                            Utlis.WriteLine("添加房间分享成功");
                        }
                        else
                        {
                            Utlis.WriteLine("添加房间分享失败");
                        }
                        //如果房间ID不为空,管理房间
                        ManageRoomSharing();
                    }
                    else
                    {
                        var success = DeleteShareRoom();
                        if (success)
                        {
                            Utlis.WriteLine("删除房间分享成功");
                        }
                        else
                        {
                            Utlis.WriteLine("删除房间分享失败");
                        }
                    }
                    //2.批量删除分享
                    var deleteShareObj = new DeleteShareObj()
@@ -92,9 +84,9 @@
                    //3.批量上传
                    var funs_NeedAdd = new List<ShareData>();
                    foreach (var f in funs_New)
                    foreach (var f in funs_RoomAll)
                    {
                        var sd = funs.Find((obj) => obj.shareTypeId == f.shareTypeId);
                        var sd = curResidenceShareData.Find((obj) => obj.shareTypeId == f.shareTypeId);
                        //如果该功能已经分享,不用分享
                        if (null == sd)
                        {
@@ -128,7 +120,7 @@
                    {
                        //4.1管理最终的分享列表
                        var funs_final = new List<ShareData>();
                        funs_final.AddRange(funs);
                        funs_final.AddRange(curResidenceShareData);
                        //4.2移除删除的
                        foreach (var share_d in funs_Del)
                        {
@@ -145,14 +137,13 @@
                        Application.RunOnMainThread(() =>
                        {
                            new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true);
                            memberInfo.CurResidenceShareDate = funs_final;
                            memberInfo.CurResidenceShareData = 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());
                            refreshAction?.Invoke();
                        });
                    }
                }
@@ -203,6 +194,42 @@
        }
        /// <summary>
        /// 管理房间分享操作
        /// funs_New 大于1分享房间
        /// </summary>
        bool ManageRoomSharing()
        {
            bool success = false;
            //1.管理最终属于房间的分享
            if (funs_RoomAll != null && funs_RoomAll.Count > 0)
            {
                //最终属于房间的分享大于0
                success = ShareRoom();
                if (success)
                {
                    Utlis.WriteLine("添加房间分享成功");
                }
                else
                {
                    Utlis.WriteLine("添加房间分享失败");
                }
            }
            else
            {
                success = DeleteShareRoom();
                if (success)
                {
                    Utlis.WriteLine("删除房间分享成功");
                }
                else
                {
                    Utlis.WriteLine("删除房间分享失败");
                }
            }
            return success;
        }
        /// <summary>
        /// 分享房间
        /// </summary>
        /// <returns></returns>
@@ -212,7 +239,7 @@
            roomList.Add(new ShareData()
            {
                shareType = ShareType.ROOM.ToString(),
                shareTypeId = room.roomId
                shareTypeId = roomId
            });
            List<string> childAccountIds = new List<string>();
            childAccountIds.Add(memberInfo.childAccountId);
@@ -243,7 +270,7 @@
            roomList.Add(new ShareData()
            {
                shareType = ShareType.ROOM.ToString(),
                shareTypeId = room.roomId
                shareTypeId = roomId
            });
            var deleteShareObj = new DeleteShareObj()
@@ -274,16 +301,16 @@
            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
            {
                btnChoose.IsSelected = !btnChoose.IsSelected;
                var sd = funs.Find((obj) => obj.shareTypeId == function.deviceId);
                var sd = curResidenceShareData.Find((obj) => obj.shareTypeId == function.deviceId);
                if (btnChoose.IsSelected)
                {
                    try
                    {
                        if (null != sd)
                        {
                            if (!funs_New.Contains(sd))
                            if (!funs_RoomAll.Contains(sd))
                            {
                                funs_New.Add(sd);
                                funs_RoomAll.Add(sd);
                            }
                            if (funs_Del.Contains(sd))
                            {
@@ -295,12 +322,12 @@
                            var newSd = new ShareData();
                            newSd.shareTypeId = function.deviceId;
                            funs_New.Add(newSd);
                            funs_RoomAll.Add(newSd);
                        }
                        btnChooseAll.IsSelected = true;
                        foreach (var f in room.GetRoomFunctions(false))
                        foreach (var f in roomFunctionList)
                        {
                            if (funs_New.Find((obj) => obj.shareTypeId == f.deviceId) == null)
                            if (funs_RoomAll.Find((obj) => obj.shareTypeId == f.deviceId) == null)
                            {
                                btnChooseAll.IsSelected = false;
                                break;
@@ -314,10 +341,10 @@
                }
                else
                {
                    var onFuns = funs_New.Find((obj) => obj.shareTypeId == function.deviceId);
                    if (funs_New.Contains(onFuns))
                    var onFuns = funs_RoomAll.Find((obj) => obj.shareTypeId == function.deviceId);
                    if (funs_RoomAll.Contains(onFuns))
                    {
                        funs_New.Remove(onFuns);
                        funs_RoomAll.Remove(onFuns);
                    }
                    if (null != sd)
@@ -344,28 +371,28 @@
            {
                btnChooseAll.IsSelected = !btnChooseAll.IsSelected;
                funs_Del = new List<ShareData>();
                funs_New = new List<ShareData>();
                funs_RoomAll = new List<ShareData>();
                if (btnChooseAll.IsSelected)
                {
                    foreach (var f in room.GetRoomFunctions(false))
                    foreach (var f in roomFunctionList)
                    {
                        var ssdd = new ShareData();
                        ssdd.shareTypeId = f.deviceId;
                        funs_New.Add(ssdd);
                        funs_RoomAll.Add(ssdd);
                    }
                }
                else
                {
                    foreach (var f in room.GetRoomFunctions(false))
                    foreach (var f in roomFunctionList)
                    {
                        var sd = funs.Find((obj) => obj.shareTypeId == f.deviceId);
                        var sd = curResidenceShareData.Find((obj) => obj.shareTypeId == f.deviceId);
                        if (sd != null)
                        {
                            funs_Del.Add(sd);
                        }
                    }
                }
                LoadFunctionRow(funs_New);
                LoadFunctionRow(funs_RoomAll);
            };
            btnChooseAll.MouseUpEventHandler = eventHandler;
            allRoomView.MouseUpEventHandler = eventHandler;