From e6a26ee148587327478d9a82624a820c907b6e16 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期三, 04 十一月 2020 14:58:15 +0800 Subject: [PATCH] 20201104 --- HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs | 210 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 187 insertions(+), 23 deletions(-) diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs index 4a1bb7a..ad3c548 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs @@ -1,4 +1,6 @@ 锘縰sing System; +using System.Collections.Generic; +using System.Threading; using HDL_ON.DAL; using HDL_ON.DAL.Server; using HDL_ON.Entity; @@ -10,45 +12,174 @@ void LoadEventList() { LoadEvent_AllSharedDataChange(); + LoadEvent_OptionClick(); } - void EditShareData() + /// <summary> + /// 搴曢儴鎿嶄綔鎸夐挳鐐瑰嚮浜嬩欢 + /// </summary> + void LoadEvent_OptionClick() { - if (memberInfo.CurShareData.ShareName == "") + btnOption.MouseUpEventHandler = (sender, e) => { - var ssdd = new ShareData(); - ssdd.ShareName = DB_ResidenceData.residenceData.residecenInfo.RegionID; - ssdd.HouseDistributedMark = DB_ResidenceData.residenceData.residecenInfo.RegionID; - ssdd.ShareDataBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(funs)); - ssdd.SubAccountDistributedMark = memberInfo.SubAccountDistributedMark; - ResponsePack responePack = new HttpServerRequest().AddShareData(ssdd); - if (responePack.StateCode.ToUpper() != "SUCCESS") + if (titleId == StringId.PermissionToUse)//浠庝釜浜轰腑蹇冭繘鍏ュ崟鐙垎浜� { - new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.OperationFailed), true); - return; + new 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 = 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); + }); + } + } + Application.RunOnMainThread(() => + { + act(); + }); + if (result) + { + Application.RunOnMainThread(() => + { + new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true); + memberInfo.CurResidenceShareDate = funs_New; + }); + 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 { - ssdd.DistributedMark = responePack.ResponseData.ToString(); + //var sharedBytes = System.Text.Encoding.UTF8.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; } - memberInfo.CurShareData = ssdd; + }; + } + + /// <summary> + /// 鏂板鍏变韩鏁版嵁鐐瑰嚮浜嬩欢 + /// </summary> + bool LoadMethod_AddShareData(ShareData ssdd) + { + //澧炲姞鍏变韩鏁版嵁鐩綍 + ResponsePack responePack = new HttpServerRequest().AddShareData(ssdd); + if (responePack.StateCode.ToUpper() != "SUCCESS") + { + return false; } else { - UpdataShareData(); + ssdd.DistributedMark = responePack.ResponseData.ToString(); + // 鏇存柊鍏变韩鏁版嵁 + return EditShareData(ssdd); + } + } + /// <summary> + /// 鍒犻櫎鍏变韩鏁版嵁鐐瑰嚮浜嬩欢 + /// </summary> + /// <param name="function"></param> + bool LoadMethod_DelSharedData(ShareData sd) + { + ResponsePack responePack = new HttpServerRequest().DeleteShareData(sd); + if (responePack.StateCode.ToUpper() != "SUCCESS") + { + return false; + } + else + { + return true; } } - void LoadEvent_SharedDataChange(Button btnChoose, Button btn2, FrameLayout btn3, Entity.Function function) + /// <summary> + /// 鏇存柊鍏变韩鏁版嵁 + /// </summary> + 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<MouseEventArgs> eventHandler = (sender, e) => { btnChoose.IsSelected = !btnChoose.IsSelected; + var sd = funs.Find((obj) => obj.ShareName == function.sid); if (btnChoose.IsSelected) { try { - funs.Add(function); + 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 = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(function)); + newSd.SubAccountDistributedMark = memberInfo.SubAccountDistributedMark; + funs_New.Add(newSd); + } + btnChooseAll.IsSelected = true; + foreach (var f in room.GetRoomFunctions(false)) + { + if (funs_New.Find((obj) => obj.ShareName == f.sid) == null) + { + btnChooseAll.IsSelected = false; + break; + } + } } catch (Exception ex) { @@ -57,31 +188,64 @@ } else { - funs.Remove(function); + 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; } - + /// <summary> + /// 鍏ㄩ�夋寜閽偣鍑讳簨浠� + /// </summary> void LoadEvent_AllSharedDataChange() { EventHandler<MouseEventArgs> eventHandler = (sender, e) => { btnChooseAll.IsSelected = !btnChooseAll.IsSelected; - funs.Clear(); - funs = new System.Collections.Generic.List<Function>(); + funs_Del = new List<ShareData>(); + funs_New = new List<ShareData>(); if (btnChooseAll.IsSelected) { - funs.AddRange( room.functions); + foreach(var f in room.GetRoomFunctions(false)) + { + var ssdd = new ShareData(); + ssdd.ShareName = f.sid; + ssdd.HouseDistributedMark = DB_ResidenceData.residenceData.residecenInfo.RegionID; + ssdd.ShareDataBytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(f)); + ssdd.SubAccountDistributedMark = memberInfo.SubAccountDistributedMark; + funs_New.Add(ssdd); + } } - LoadFunctionRow(); + else + { + foreach(var f in room.GetRoomFunctions(false)) + { + 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; } - } } -- Gitblit v1.8.0