From 4a5e9d0447aae9b264a98ea1f4c95417d0f4aa91 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 01 十二月 2020 17:20:01 +0800
Subject: [PATCH] Merge branch 'master' into WJC
---
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs | 205 ++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 176 insertions(+), 29 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..b5838b4 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,175 @@
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 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.fileName == f.fileName);
+ //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝鏇存柊鍘熸湁鐨勬暟鎹�
+ 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)
+ {
+ //澧炲姞鍏变韩鏁版嵁鐩綍
+ var responePack = new HttpServerRequest().AddShareData(ssdd);
+ if (responePack.Code != StateCode.SUCCESS)
+ {
+ return false;
}
else
{
- UpdataShareData();
+ var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ShareData>(responePack.Data.ToString());
+ ssdd.id = responeObj.id;
+ // 鏇存柊鍏变韩鏁版嵁
+ return EditShareData(ssdd);
+ }
+ }
+ /// <summary>
+ /// 鍒犻櫎鍏变韩鏁版嵁鐐瑰嚮浜嬩欢
+ /// </summary>
+ /// <param name="function"></param>
+ bool LoadMethod_DelSharedData(ShareData sd)
+ {
+ var responePack = new HttpServerRequest().DeleteShareData(sd);
+ if (responePack.Code != StateCode.SUCCESS)
+ {
+ return false;
+ }
+ else
+ {
+ return true;
}
}
/// <summary>
/// 鏇存柊鍏变韩鏁版嵁
/// </summary>
- void UpdataShareData()
+ bool EditShareData(ShareData sd)
{
- ResponsePack responePack = new HttpServerRequest().EditShareData(memberInfo.CurShareData);
- if (responePack.StateCode.ToUpper() == "SUCCESS")
+ var responePack = new HttpServerRequest().EditShareData(sd);
+ if (responePack.Code == StateCode.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.fileName == 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.fileName = function.sid;
+ newSd.homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID;
+ newSd.ShareDataBytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(function));
+ newSd.childAccountId = memberInfo.childAccountId;
+ funs_New.Add(newSd);
+ }
+ btnChooseAll.IsSelected = true;
+ foreach (var f in room.GetRoomFunctions(false))
+ {
+ if (funs_New.Find((obj) => obj.fileName == f.sid) == null)
+ {
+ btnChooseAll.IsSelected = false;
+ break;
+ }
+ }
}
catch (Exception ex)
{
@@ -75,31 +189,64 @@
}
else
{
- funs.Remove(function);
+ var onFuns = funs_New.Find((obj) => obj.fileName == 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.fileName = f.sid;
+ ssdd.homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID;
+ ssdd.ShareDataBytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(f));
+ ssdd.childAccountId = memberInfo.childAccountId;
+ funs_New.Add(ssdd);
+ }
}
- LoadFunctionRow();
+ else
+ {
+ foreach(var f in room.GetRoomFunctions(false))
+ {
+ var sd = funs.Find((obj) => obj.fileName == f.sid);
+ if (sd != null)
+ {
+ funs_Del.Add(sd);
+ }
+ }
+ }
+ LoadFunctionRow(funs_New);
};
btnChooseAll.MouseUpEventHandler = eventHandler;
allRoomView.MouseUpEventHandler = eventHandler;
}
-
}
}
--
Gitblit v1.8.0