using System;
|
using System.Collections.Generic;
|
using System.Threading;
|
using HDL_ON.DAL;
|
using HDL_ON.DAL.Server;
|
using HDL_ON.Entity;
|
using Shared;
|
namespace HDL_ON.UI
|
{
|
public partial class MemberFunctionPermissionPage
|
{
|
void LoadEventList()
|
{
|
LoadEvent_AllSharedDataChange();
|
LoadEvent_OptionClick();
|
}
|
|
|
/// <summary>
|
/// 底部操作按钮点击事件
|
/// </summary>
|
void LoadEvent_OptionClick()
|
{
|
btnOption.MouseUpEventHandler = (sender, e) =>
|
{
|
if (titleId == StringId.PermissionToUse)//从个人中心进入单独分享
|
{
|
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.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);
|
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
|
{
|
//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;
|
}
|
};
|
}
|
|
/// <summary>
|
/// 新增共享数据点击事件
|
/// </summary>
|
bool LoadMethod_AddShareData(ShareData ssdd)
|
{
|
//增加共享数据目录
|
ResponsePack responePack = new HttpServerRequest().AddShareData(ssdd);
|
if (responePack.StateCode.ToUpper() != "SUCCESS")
|
{
|
return false;
|
}
|
else
|
{
|
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>
|
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
|
{
|
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.GetRoomFunctions(false))
|
{
|
if (funs_New.Find((obj) => obj.ShareName == f.sid) == null)
|
{
|
btnChooseAll.IsSelected = false;
|
break;
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"Evhaaa {ex.Message}");
|
}
|
}
|
else
|
{
|
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_Del = new List<ShareData>();
|
funs_New = new List<ShareData>();
|
if (btnChooseAll.IsSelected)
|
{
|
foreach(var f in room.GetRoomFunctions(false))
|
{
|
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);
|
}
|
}
|
else
|
{
|
foreach(var f in room.GetRoomFunctions(false))
|
{
|
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;
|
|
}
|
}
|
}
|