From 23c075a9c27946773feccf05abc90489a6bf5203 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期一, 06 七月 2020 15:58:53 +0800 Subject: [PATCH] 20200706 --- HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs | 200 +++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 172 insertions(+), 28 deletions(-) diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs index d812182..11ae70b 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,63 +12,172 @@ void LoadEventList() { LoadEvent_AllSharedDataChange(); + LoadEvent_OptionClick(); } + + /// <summary> - /// 鏇存柊鍏变韩鏁版嵁鐐瑰嚮浜嬩欢 + /// 搴曢儴鎿嶄綔鎸夐挳鐐瑰嚮浜嬩欢 /// </summary> - void LoadEvent_EditShareData() + 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 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); + refreshFunctionCount?.Invoke(funs_New.Count.ToString()); + }); + } + }) + { IsBackground = true }.Start(); } else { - ssdd.DistributedMark = responePack.ResponseData.ToString(); + //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; } - 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; } } /// <summary> /// 鏇存柊鍏变韩鏁版嵁 /// </summary> - void UpdataShareData() + bool EditShareData(ShareData sd) { - ResponsePack responePack = new HttpServerRequest().EditShareData(memberInfo.CurShareData); + ResponsePack responePack = new HttpServerRequest().EditShareData(sd); if (responePack.StateCode.ToUpper() == "SUCCESS") { - new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.SavedSuccessfully), true); + return true; } else { - new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.OperationFailed), true); + return false; } } - void LoadEvent_SharedDataChange(Button btnChoose, Button btn2, FrameLayout btn3, Entity.Function function) + 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 = 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) { @@ -75,31 +186,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.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); + } } - LoadFunctionRow(); + 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; } - } } -- Gitblit v1.8.0