From b764dff5c4f4a7b0cde45a8d3eb28ff2a315cc29 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 19 八月 2020 16:46:53 +0800
Subject: [PATCH] 2020-08-19-1
---
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs | 209 ++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 186 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..0fc9bc6 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,173 @@
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 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
{
- 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;
}
}
- 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 = 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)
{
@@ -57,31 +187,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