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();
}
///
/// 底部操作按钮点击事件
///
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 = 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
{
//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;
}
};
}
///
/// 新增共享数据点击事件
///
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);
}
}
///
/// 删除共享数据点击事件
///
///
bool LoadMethod_DelSharedData(ShareData sd)
{
ResponsePack responePack = new HttpServerRequest().DeleteShareData(sd);
if (responePack.StateCode.ToUpper() != "SUCCESS")
{
return false;
}
else
{
return true;
}
}
///
/// 更新共享数据
///
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 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 = System.Text.Encoding.UTF8.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;
}
///
/// 全选按钮点击事件
///
void LoadEvent_AllSharedDataChange()
{
EventHandler eventHandler = (sender, e) =>
{
btnChooseAll.IsSelected = !btnChooseAll.IsSelected;
funs_Del = new List();
funs_New = new List();
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 = System.Text.Encoding.UTF8.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;
}
}
}