using System; using System.Collections.Generic; using System.Threading; using HDL_ON.DAL; using HDL_ON.DAL.Server; using HDL_ON.Entity; using Shared; namespace HDL_ON.UI { public partial class MemberFunctionPermissionPage { void LoadEventList() { LoadEvent_AllSharedDataChange(); LoadEvent_OptionClick(); } /// /// 底部操作按钮点击事件 /// void LoadEvent_OptionClick() { btnOption.MouseUpEventHandler = (sender, e) => { if (titleId == StringId.PermissionToUse)//从个人中心进入单独分享 { new System.Threading.Thread(() => { bool result = false; Action act = () => { }; Application.RunOnMainThread(() => { 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.ShareName == f.ShareName); //如果该功能已经分享,更新原有的数据 if (null != sd) { sd.ShareDataBytes = CommonPage.MyEncodingUTF8.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); }); } } Application.RunOnMainThread(() => { act(); }); if (result) { Application.RunOnMainThread(() => { new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true); }); 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()); }); } }) { IsBackground = true }.Start(); } else { //var sharedBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(funs_New)); var page = new ChooseShareMemberTargetListPage(funs_New); MainPage.BasePageView.AddChidren(page); page.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } }; } /// /// 新增共享数据点击事件 /// bool LoadMethod_AddShareData(ShareData ssdd) { //增加共享数据目录 ResponsePack responePack = new HttpServerRequest().AddShareData(ssdd); if (responePack.StateCode.ToUpper() != "SUCCESS") { return false; } else { ssdd.DistributedMark = responePack.ResponseData.ToString(); // 更新共享数据 return EditShareData(ssdd); } } /// /// 删除共享数据点击事件 /// /// bool LoadMethod_DelSharedData(ShareData sd) { ResponsePack responePack = new HttpServerRequest().DeleteShareData(sd); if (responePack.StateCode.ToUpper() != "SUCCESS") { return false; }else { return true; } } /// /// 更新共享数据 /// bool EditShareData(ShareData sd) { ResponsePack responePack = new HttpServerRequest().EditShareData(sd); if (responePack.StateCode.ToUpper() == "SUCCESS") { return true; } else { return false; } } void LoadMethod_SharedDataChange(Button btnChoose, Button btn2, FrameLayout btn3, Function function) { EventHandler eventHandler = (sender, e) => { btnChoose.IsSelected = !btnChoose.IsSelected; var sd = funs.Find((obj) => obj.ShareName == function.sid); if (btnChoose.IsSelected) { try { if (null != sd) { if (!funs_New.Contains(sd)) { funs_New.Add(sd); } if (funs_Del.Contains(sd)) { funs_Del.Remove(sd); } } else { var newSd = new ShareData(); newSd.ShareName = function.sid; newSd.HouseDistributedMark = DB_ResidenceData.residenceData.residecenInfo.RegionID; newSd.ShareDataBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(function)); newSd.SubAccountDistributedMark = memberInfo.SubAccountDistributedMark; funs_New.Add(newSd); } btnChooseAll.IsSelected = true; foreach (var f in room.functions) { if (funs_New.Find((obj) => obj.ShareName == f.sid) == null) { btnChooseAll.IsSelected = false; break; } } } catch (Exception ex) { MainPage.Log($"Evhaaa {ex.Message}"); } } else { var onFuns = funs_New.Find((obj) => obj.ShareName == function.sid); if (funs_New.Contains(onFuns)) { funs_New.Remove(onFuns); } if (null != sd) { if (!funs_Del.Contains(sd)) { funs_Del.Add(sd); } } btnChooseAll.IsSelected = false; } }; btnChoose.MouseUpEventHandler = eventHandler; btn2.MouseUpEventHandler = eventHandler; btn3.MouseUpEventHandler = eventHandler; } /// /// 全选按钮点击事件 /// void LoadEvent_AllSharedDataChange() { EventHandler eventHandler = (sender, e) => { btnChooseAll.IsSelected = !btnChooseAll.IsSelected; funs_Del = new List(); funs_New = new List(); if (btnChooseAll.IsSelected) { foreach(var f in room.functions) { var ssdd = new ShareData(); ssdd.ShareName = f.sid; ssdd.HouseDistributedMark = DB_ResidenceData.residenceData.residecenInfo.RegionID; ssdd.ShareDataBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(f)); ssdd.SubAccountDistributedMark = memberInfo.SubAccountDistributedMark; funs_New.Add(ssdd); } } else { foreach(var f in room.functions) { var sd = funs.Find((obj) => obj.ShareName == f.sid); if (sd != null) { funs_Del.Add(sd); } } } LoadFunctionRow(funs_New); }; btnChooseAll.MouseUpEventHandler = eventHandler; allRoomView.MouseUpEventHandler = eventHandler; } } }