using System; using System.Collections.Generic; using System.Threading; using HDL_ON.DAL.Server; using HDL_ON.Entity; using Shared; namespace HDL_ON.UI { public partial class MemberPermissionPage { void LoadEventList() { LoadEvent_RemoveMember(); } void LoadEvent_RemoveMember() { btnDelMember.MouseUpEventHandler = (sender, e) => { Action action = () => { RemoveTheMember(); }; new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.ConfirmToRemoveTheMember, action); }; } /// /// 查询所有子账号分享数据 /// void GetShareDataByAccount() { var waitPage = new Loading(); bodyView.AddChidren(waitPage); waitPage.Start(Language.StringByID(StringId.PleaseWait)); new System.Threading.Thread(() => { try { var responePack = new HttpServerRequest().GetShareDataByMemberAccount(memberInfo.childAccountId); if (responePack.Code == StateCode.SUCCESS) { if (responePack.Data != null) { var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject>(responePack.Data.ToString()); memberInfo.CurResidenceShareData = responeObj; } else { memberInfo.CurResidenceShareData = new List(); } Application.RunOnMainThread(() => { ShowRoomListView(); }); } else { memberInfo.CurResidenceShareData = new List(); IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code); } } catch (Exception ex) { } finally { Application.RunOnMainThread(() => { if (waitPage != null) { waitPage.RemoveFromParent(); waitPage = null; } }); } }) { IsBackground = true }.Start(); } /// /// 删除子账号 /// void RemoveTheMember() { var waitPage = new Loading(); bodyView.AddChidren(waitPage); waitPage.Start(Language.StringByID(StringId.PleaseWait)); new System.Threading.Thread(() => { try { var responePack = new HttpServerRequest().DeleteResidenceMemberAccount(memberInfo); if (responePack.Code == StateCode.SUCCESS) { Application.RunOnMainThread(() => { this.RemoveFromParent(); backAction(); }); } else { IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code); } } catch (Exception ex) { } finally { Application.RunOnMainThread(() => { if (waitPage != null) { waitPage.RemoveFromParent(); waitPage = null; } }); } }) { IsBackground = true }.Start(); } /// /// 一键删除当前房间所有分享 /// /// 需要一键删除的分享数据 /// 当前房间所有功能列表 /// 如果房间ID为空,则代表管理无分配区域的功能,不需要删除房间分享 /// 个数统计数量 /// 背景View void DeleteRoomAllShare(List funs_Del, List roomFunctionOrSceneList, string roomId, Button btnFunctionCount, RowLayout roomView) { //需要删除的分享为0 if (funs_Del == null || funs_Del.Count == 0) { //关闭右滑菜单 roomView.HideMenu(); Utlis.ShowTip(Language.StringByID(StringId.NoShare)); return; } var waitPage = new Loading(); bodyView.AddChidren(waitPage); waitPage.Start(Language.StringByID(StringId.PleaseWait)); new Thread(() => { try { bool result = false; //2020-12-22 屏蔽房间分享管理 ////如果房间ID为空,则代表管理无分配区域的功能,不需要删除房间分享 //if (!string.IsNullOrEmpty(roomId)) //{ // //删除房间分享 // var success = DeleteShareRoom(roomId); // if (success) // { // Utlis.WriteLine("删除房间分享成功"); // } // else // { // Utlis.WriteLine("删除房间分享失败"); // } //} //2.批量删除分享 var deleteShareObj = new DeleteShareObj() { shareDatas = funs_Del, homeId = DB_ResidenceData.Instance.CurrentRegion.id, }; result = LoadMethod_DelSharedData(deleteShareObj); if (!result) { Application.RunOnMainThread(() => { new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.delFail), true); }); } else { //删除分享成功 //4.1管理最终的分享列表 var funs_final = new List(); funs_final.AddRange(memberInfo.CurResidenceShareData); //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); } } Application.RunOnMainThread(() => { new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.SavedSuccessfully), true); //清空 funs_Del.Clear(); memberInfo.CurResidenceShareData = funs_final; btnFunctionCount.Text = 0 + "/" + roomFunctionOrSceneList.Count.ToString(); //关闭右滑菜单 roomView.HideMenu(); }); } } catch { } finally { Application.RunOnMainThread(() => { if (waitPage != null) { waitPage.RemoveFromParent(); waitPage = null; } }); } }) { IsBackground = true }.Start(); } /// /// 删除房间分享 /// /// bool DeleteShareRoom(string roomId) { var roomList = new List(); roomList.Add(new ShareData() { shareType = ShareType.ROOM.ToString(), shareTypeId = roomId }); var deleteShareObj = new DeleteShareObj() { shareDatas = roomList, homeId = DB_ResidenceData.Instance.CurrentRegion.id, }; var responePack = new HttpServerRequest().DeleteShareData(deleteShareObj); if (responePack.Code != StateCode.SUCCESS) { return false; } else { return true; } } /// /// 删除共享数据点击事件 /// /// bool LoadMethod_DelSharedData(DeleteShareObj sd) { var responePack = new HttpServerRequest().DeleteShareData(sd); if (responePack.Code != StateCode.SUCCESS) { return false; } else { return true; } } } }