From a1b0ab7044100daaa7e0f1da2d2ca45e38098963 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 29 三月 2021 09:13:25 +0800
Subject: [PATCH] 2021-3-29-2
---
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs | 375 +++++++++++++++++++++++++++++------------------------
1 files changed, 204 insertions(+), 171 deletions(-)
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs
index 0c37300..99d8881 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs
@@ -22,140 +22,139 @@
{
btnOption.MouseUpEventHandler = (sender, e) =>
{
- if (titleId == StringId.PermissionToUse)//浠庝釜浜轰腑蹇冭繘鍏ュ崟鐙垎浜�
+ Action action = () =>
{
- new Thread(() =>
- {
- try
- {
- bool result = false;
- Action act = () => { };
- Application.RunOnMainThread(() =>
- {
- act = new PublicAssmebly().TipLoadingMsgDialog(Language.StringByID(StringId.SavingPleaseWait));
- });
+ UploadShareDeviceList();
+ };
+ //鏄惁闇�瑕佷繚瀛�
+ new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.IfNeedToSave, action);
- //1.绠$悊鎴块棿鍒嗕韩
- if (funs_New != null && funs_New.Count > 0)
- {
- //鍒嗕韩璁惧澶т簬0
- var success = ShareRoom();
- if (success)
- {
- Utlis.WriteLine("娣诲姞鎴块棿鍒嗕韩鎴愬姛");
- }
- else
- {
- Utlis.WriteLine("娣诲姞鎴块棿鍒嗕韩澶辫触");
- }
- }
- else
- {
- var success = DeleteShareRoom();
- if (success)
- {
- Utlis.WriteLine("鍒犻櫎鎴块棿鍒嗕韩鎴愬姛");
- }
- else
- {
- Utlis.WriteLine("鍒犻櫎鎴块棿鍒嗕韩澶辫触");
- }
- }
-
- //2.鎵归噺鍒犻櫎鍒嗕韩
- var deleteShareObj = new DeleteShareObj()
- {
- shareDatas = funs_Del,
- homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
- };
- LoadMethod_DelSharedData(deleteShareObj);
-
- //3.鎵归噺涓婁紶
- 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)
- {
- //4.1绠$悊鏈�缁堢殑鍒嗕韩鍒楄〃
- var funs_final = new List<ShareData>();
- funs_final.AddRange(funs);
- //4.2绉婚櫎鍒犻櫎鐨�
- foreach (var share_d in funs_Del)
- {
- var sd = funs_final.Find((obj) => obj.shareTypeId == share_d.shareTypeId);
- //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝涓嶇敤鍒嗕韩
- if (null != sd)
- {
- funs_final.Remove(share_d);
- }
- }
- //4.3娣诲姞鏂板鐨�
- funs_final.AddRange(funs_NeedAdd);
-
- Application.RunOnMainThread(() =>
- {
- new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true);
- memberInfo.CurResidenceShareDate = funs_final;
- });
- 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());
- });
- }
- }
- catch { }
- finally
- {
-
- }
- })
- { IsBackground = true }.Start();
- }
- else
- {
- //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;
- }
+ //if (titleId == StringId.PermissionToUse)//浠庝釜浜轰腑蹇冭繘鍏ュ崟鐙垎浜�
+ //{
+ // Action action = () =>
+ // {
+ // UploadShareDeviceList();
+ // };
+ // //鏄惁闇�瑕佷繚瀛�
+ // new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.IfNeedToSave, action);
+ //}
+ //else
+ //{
+ // //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;
+ //}
};
+ }
+
+ /// <summary>
+ /// 绠$悊璁惧鍒嗕韩
+ /// 2020-12-08 1.澧炲姞鍒嗕韩璁惧鐨勬椂鍊欙紝鍒ゆ柇褰撳墠鎴块棿鍒嗕韩璁惧鎬绘暟锛屼粠鑰屽喅瀹氭槸鍚﹂渶瑕佸鍔犳垨鑰呯Щ闄ゆ埧闂村垎浜�
+ /// </summary>
+ void UploadShareDeviceList()
+ {
+ new Thread(() =>
+ {
+ try
+ {
+ bool result = false;
+ Action act = () => { };
+ Application.RunOnMainThread(() =>
+ {
+ act = new PublicAssmebly().TipLoadingMsgDialog(Language.StringByID(StringId.SavingPleaseWait));
+ });
+
+ //2020-12-22 灞忚斀鎴块棿鍒嗕韩绠$悊
+ //if (!string.IsNullOrEmpty(roomId))
+ //{
+ // //濡傛灉鎴块棿ID涓嶄负绌猴紝绠$悊鎴块棿
+ // ManageRoomSharing();
+ //}
+
+
+ //2.鎵归噺鍒犻櫎鍒嗕韩
+ var deleteShareObj = new DeleteShareObj()
+ {
+ shareDatas = funs_Del,
+ homeId = DB_ResidenceData.Instance.CurrentRegion.RegionID,
+ };
+ LoadMethod_DelSharedData(deleteShareObj);
+
+ //3.鎵归噺涓婁紶
+ var funs_NeedAdd = new List<ShareData>();
+ foreach (var f in funs_RoomAll)
+ {
+ var sd = curResidenceShareData.Find((obj) => obj.shareTypeId == f.shareTypeId);
+ //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝涓嶇敤鍒嗕韩
+ if (null == sd)
+ {
+ funs_NeedAdd.Add(f);
+ }
+ }
+ //3.1 鎻愪氦璇锋眰
+ List<string> childAccountIds = new List<string>();
+ childAccountIds.Add(memberInfo.childAccountId);
+ var addShareObj = new AddShareObj()
+ {
+ shareDatas = funs_NeedAdd,
+ childAccountIds = childAccountIds,
+ homeId = DB_ResidenceData.Instance.CurrentRegion.RegionID,
+ };
+ result = LoadMethod_AddShareData(addShareObj);
+
+ if (!result)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingFailed), true);
+ });
+ }
+
+ Application.RunOnMainThread(() =>
+ {
+ act();
+ });
+ if (result)
+ {
+ //4.1绠$悊鏈�缁堢殑鍒嗕韩鍒楄〃
+ var funs_final = new List<ShareData>();
+ funs_final.AddRange(curResidenceShareData);
+ //4.2绉婚櫎鍒犻櫎鐨�
+ foreach (var share_d in funs_Del)
+ {
+ var sd = funs_final.Find((obj) => obj.shareTypeId == share_d.shareTypeId);
+ //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝涓嶇敤鍒嗕韩
+ if (null != sd)
+ {
+ funs_final.Remove(share_d);
+ }
+ }
+ //4.3娣诲姞鏂板鐨�
+ funs_final.AddRange(funs_NeedAdd);
+
+ Application.RunOnMainThread(() =>
+ {
+ new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true);
+ memberInfo.CurResidenceShareData = funs_final;
+ });
+ Thread.Sleep(1600);
+ Application.RunOnMainThread(() =>
+ {
+ MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
+ refreshAction?.Invoke();
+ });
+ }
+ }
+ catch { }
+ finally
+ {
+
+ }
+ })
+ { IsBackground = true }.Start();
}
/// <summary>
@@ -196,22 +195,59 @@
}
/// <summary>
+ /// 绠$悊鎴块棿鍒嗕韩鎿嶄綔
+ /// funs_New 澶т簬1鍒嗕韩鎴块棿
+ /// </summary>
+ bool ManageRoomSharing()
+ {
+ bool success = false;
+ //1.绠$悊鏈�缁堝睘浜庢埧闂寸殑鍒嗕韩
+ if (funs_RoomAll != null && funs_RoomAll.Count > 0)
+ {
+ //鏈�缁堝睘浜庢埧闂寸殑鍒嗕韩澶т簬0
+ success = ShareRoom();
+ if (success)
+ {
+ Utlis.WriteLine("娣诲姞鎴块棿鍒嗕韩鎴愬姛");
+ }
+ else
+ {
+ Utlis.WriteLine("娣诲姞鎴块棿鍒嗕韩澶辫触");
+ }
+ }
+ else
+ {
+ success = DeleteShareRoom();
+ if (success)
+ {
+ Utlis.WriteLine("鍒犻櫎鎴块棿鍒嗕韩鎴愬姛");
+ }
+ else
+ {
+ Utlis.WriteLine("鍒犻櫎鎴块棿鍒嗕韩澶辫触");
+ }
+ }
+ return success;
+ }
+
+ /// <summary>
/// 鍒嗕韩鎴块棿
/// </summary>
/// <returns></returns>
bool ShareRoom()
{
var roomList = new List<ShareData>();
- roomList.Add(new ShareData() {
+ roomList.Add(new ShareData()
+ {
shareType = ShareType.ROOM.ToString(),
- shareTypeId = room.roomId
+ shareTypeId = roomId
});
List<string> childAccountIds = new List<string>();
childAccountIds.Add(memberInfo.childAccountId);
var addShareObj = new AddShareObj()
{
childAccountIds = childAccountIds,
- homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
+ homeId = DB_ResidenceData.Instance.CurrentRegion.RegionID,
shareDatas = roomList
};
var responePack = new HttpServerRequest().AddShareData(addShareObj);
@@ -235,13 +271,13 @@
roomList.Add(new ShareData()
{
shareType = ShareType.ROOM.ToString(),
- shareTypeId = room.roomId
+ shareTypeId = roomId
});
var deleteShareObj = new DeleteShareObj()
{
shareDatas = roomList,
- homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID,
+ homeId = DB_ResidenceData.Instance.CurrentRegion.RegionID,
};
var responePack = new HttpServerRequest().DeleteShareData(deleteShareObj);
if (responePack.Code != StateCode.SUCCESS)
@@ -254,37 +290,28 @@
}
}
- ///// <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)
+ /// <summary>
+ /// LoadMethod_SharedDataChange
+ /// </summary>
+ /// <param name="btnChoose"></param>
+ /// <param name="btn2"></param>
+ /// <param name="btn3"></param>
+ /// <param name="function"></param>
+ void LoadMethod_SharedDataChange(Button btnChoose, Button btn2, FrameLayout btn3, RoomData roomData)
{
EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
{
btnChoose.IsSelected = !btnChoose.IsSelected;
- var sd = funs.Find((obj) => obj.shareTypeId == function.deviceId);
+ var sd = curResidenceShareData.Find((obj) => obj.shareTypeId == roomData.shareTypeId);
if (btnChoose.IsSelected)
{
try
{
if (null != sd)
{
- if (!funs_New.Contains(sd))
+ if (!funs_RoomAll.Contains(sd))
{
- funs_New.Add(sd);
+ funs_RoomAll.Add(sd);
}
if (funs_Del.Contains(sd))
{
@@ -294,14 +321,15 @@
else
{
var newSd = new ShareData();
- newSd.shareTypeId = function.deviceId;
-
- funs_New.Add(newSd);
+ newSd.shareTypeId = roomData.shareTypeId;
+ newSd.shareType = roomData.shareType;
+
+ funs_RoomAll.Add(newSd);
}
btnChooseAll.IsSelected = true;
- foreach (var f in room.GetRoomFunctions(false))
+ foreach (var f in roomFunctionOrSceneList)
{
- if (funs_New.Find((obj) => obj.shareTypeId == f.deviceId) == null)
+ if (funs_RoomAll.Find((obj) => obj.shareTypeId == f.shareTypeId) == null)
{
btnChooseAll.IsSelected = false;
break;
@@ -315,10 +343,10 @@
}
else
{
- var onFuns = funs_New.Find((obj) => obj.shareTypeId == function.deviceId);
- if (funs_New.Contains(onFuns))
+ var onFuns = funs_RoomAll.Find((obj) => obj.shareTypeId == roomData.shareTypeId);
+ if (funs_RoomAll.Contains(onFuns))
{
- funs_New.Remove(onFuns);
+ funs_RoomAll.Remove(onFuns);
}
if (null != sd)
@@ -335,6 +363,7 @@
btn2.MouseUpEventHandler = eventHandler;
btn3.MouseUpEventHandler = eventHandler;
}
+
/// <summary>
/// 鍏ㄩ�夋寜閽偣鍑讳簨浠�
/// </summary>
@@ -344,32 +373,36 @@
{
btnChooseAll.IsSelected = !btnChooseAll.IsSelected;
funs_Del = new List<ShareData>();
- funs_New = new List<ShareData>();
+ funs_RoomAll = new List<ShareData>();
if (btnChooseAll.IsSelected)
{
- foreach(var f in room.GetRoomFunctions(false))
+ foreach (var f in roomFunctionOrSceneList)
{
var ssdd = new ShareData();
- ssdd.shareTypeId = f.deviceId;
- funs_New.Add(ssdd);
+ ssdd.shareTypeId = f.shareTypeId;
+ ssdd.shareType = f.shareType;
+ funs_RoomAll.Add(ssdd);
}
}
else
{
- foreach(var f in room.GetRoomFunctions(false))
+ foreach (var f in roomFunctionOrSceneList)
{
- var sd = funs.Find((obj) => obj.shareTypeId == f.deviceId);
+ var sd = curResidenceShareData.Find((obj) => obj.shareTypeId == f.shareTypeId);
if (sd != null)
{
funs_Del.Add(sd);
}
}
}
- LoadFunctionRow(funs_New);
+ LoadFunctionRow(funs_RoomAll);
};
btnChooseAll.MouseUpEventHandler = eventHandler;
allRoomView.MouseUpEventHandler = eventHandler;
}
}
+
+
+
}
--
Gitblit v1.8.0