| | |
| | | { |
| | | 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; |
| | | //} |
| | | }; |
| | | } |
| | | |
| | |
| | | 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("添加房间分享成功"); |
| | | //如果房间ID不为空,管理房间 |
| | | ManageRoomSharing(); |
| | | } |
| | | else |
| | | { |
| | | Utlis.WriteLine("添加房间分享失败"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | var success = DeleteShareRoom(); |
| | | if (success) |
| | | { |
| | | Utlis.WriteLine("删除房间分享成功"); |
| | | } |
| | | else |
| | | { |
| | | Utlis.WriteLine("删除房间分享失败"); |
| | | } |
| | | } |
| | | |
| | | |
| | | //2.批量删除分享 |
| | | var deleteShareObj = new DeleteShareObj() |
| | |
| | | |
| | | //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) |
| | | { |
| | |
| | | { |
| | | //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) |
| | | { |
| | |
| | | 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(); |
| | | }); |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | /// <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> |
| | |
| | | roomList.Add(new ShareData() |
| | | { |
| | | shareType = ShareType.ROOM.ToString(), |
| | | shareTypeId = room.roomId |
| | | shareTypeId = roomId |
| | | }); |
| | | List<string> childAccountIds = new List<string>(); |
| | | childAccountIds.Add(memberInfo.childAccountId); |
| | |
| | | roomList.Add(new ShareData() |
| | | { |
| | | shareType = ShareType.ROOM.ToString(), |
| | | shareTypeId = room.roomId |
| | | shareTypeId = roomId |
| | | }); |
| | | |
| | | var deleteShareObj = new DeleteShareObj() |
| | |
| | | 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)) |
| | | { |
| | |
| | | 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; |
| | |
| | | } |
| | | 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) |
| | |
| | | { |
| | | 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; |