From 427ca74954126ce0d9aced18752442d064851863 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期日, 06 十二月 2020 14:27:35 +0800
Subject: [PATCH] 20201206
---
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs | 247 ++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 224 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..2fafb92 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,214 @@
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.shareTypeId == f.shareTypeId);
+ // //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝鏇存柊鍘熸湁鐨勬暟鎹�
+ // 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);
+ // });
+ // }
+ //}
+
+ //1.鎵归噺鍒犻櫎鍒嗕韩
+ var deleteShareObj = new DeleteShareObj() {
+ shareDatas = funs_Del,
+ homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
+ };
+ LoadMethod_DelSharedData(deleteShareObj);
+
+ //2.鎵归噺涓婁紶
+ var funs_NeedAdd = new List<ShareData>();
+ foreach (var f in funs_New)
+ {
+ var sd = funs.Find((obj) => obj.shareTypeId == f.shareTypeId);
+ //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝鏇存柊鍘熸湁鐨勬暟鎹�
+ if (null == sd)
+ {
+ funs_NeedAdd.Add(f);
+ }
+ }
+
+ List<string> childAccountIds = new List<string>();
+ childAccountIds.Add(memberInfo.childAccountId);
+ var addShareObj = new AddShareObj()
+ {
+ shareDatas = funs_NeedAdd,
+ childAccountIds = childAccountIds,
+ homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
+ };
+ result = LoadMethod_AddShareData(addShareObj);
+
+ 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));
+ //2020-12-01 灞忚斀椤甸潰
+ //var page = new ChooseShareMemberTargetListPage(funs_New, memberInfo);
+ //MainPage.BasePageView.AddChidren(page);
+ //page.LoadPage();
+ //MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
}
- memberInfo.CurShareData = ssdd;
+ };
+ }
+
+ /// <summary>
+ /// 鏂板鍏变韩鏁版嵁鐐瑰嚮浜嬩欢
+ /// </summary>
+ bool LoadMethod_AddShareData(AddShareObj ssdd)
+ {
+ //澧炲姞鍏变韩鏁版嵁鐩綍
+ var responePack = new HttpServerRequest().AddShareData(ssdd);
+ if (responePack.Code != StateCode.SUCCESS)
+ {
+ return false;
}
else
{
- UpdataShareData();
+ return true;
+ //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(DeleteShareObj sd)
+ {
+ var responePack = new HttpServerRequest().DeleteShareData(sd);
+ if (responePack.Code != StateCode.SUCCESS)
+ {
+ return false;
+ }
+ else
+ {
+ return true;
}
}
- void LoadEvent_SharedDataChange(Button btnChoose, Button btn2, FrameLayout btn3, Entity.Function function)
+ ///// <summary>
+ ///// 鏇存柊鍏变韩鏁版嵁
+ ///// </summary>
+ //bool EditShareData(ShareData sd)
+ //{
+ // var responePack = new HttpServerRequest().EditShareData(sd);
+ // if (responePack.Code == StateCode.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.shareTypeId == function.deviceId);
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.shareTypeId = function.deviceId;
+
+ funs_New.Add(newSd);
+ }
+ btnChooseAll.IsSelected = true;
+ foreach (var f in room.GetRoomFunctions(false))
+ {
+ if (funs_New.Find((obj) => obj.shareTypeId == f.deviceId) == null)
+ {
+ btnChooseAll.IsSelected = false;
+ break;
+ }
+ }
}
catch (Exception ex)
{
@@ -57,31 +228,61 @@
}
else
{
- funs.Remove(function);
+ var onFuns = funs_New.Find((obj) => obj.shareTypeId == function.deviceId);
+ 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.shareTypeId = f.deviceId;
+ funs_New.Add(ssdd);
+ }
}
- LoadFunctionRow();
+ else
+ {
+ foreach(var f in room.GetRoomFunctions(false))
+ {
+ var sd = funs.Find((obj) => obj.shareTypeId == f.deviceId);
+ if (sd != null)
+ {
+ funs_Del.Add(sd);
+ }
+ }
+ }
+ LoadFunctionRow(funs_New);
};
btnChooseAll.MouseUpEventHandler = eventHandler;
allRoomView.MouseUpEventHandler = eventHandler;
}
-
}
}
--
Gitblit v1.8.0