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.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();
foreach (var f in funs_New)
{
var sd = funs.Find((obj) => obj.shareTypeId == f.shareTypeId);
//如果该功能已经分享,更新原有的数据
if (null == sd)
{
funs_NeedAdd.Add(f);
}
}
List childAccountIds = new List();
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
{
//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;
}
};
}
///
/// 新增共享数据点击事件
///
bool LoadMethod_AddShareData(AddShareObj ssdd)
{
//增加共享数据目录
var responePack = new HttpServerRequest().AddShareData(ssdd);
if (responePack.Code != StateCode.SUCCESS)
{
return false;
}
else
{
return true;
//var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject(responePack.Data.ToString());
//ssdd.id = responeObj.id;
//// 更新共享数据
//return EditShareData(ssdd);
}
}
///
/// 删除共享数据点击事件
///
///
bool LoadMethod_DelSharedData(DeleteShareObj sd)
{
var responePack = new HttpServerRequest().DeleteShareData(sd);
if (responePack.Code != StateCode.SUCCESS)
{
return false;
}
else
{
return true;
}
}
/////
///// 更新共享数据
/////
//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 eventHandler = (sender, e) =>
{
btnChoose.IsSelected = !btnChoose.IsSelected;
var sd = funs.Find((obj) => obj.shareTypeId == function.deviceId);
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.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)
{
MainPage.Log($"Evhaaa {ex.Message}");
}
}
else
{
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;
}
///
/// 全选按钮点击事件
///
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.shareTypeId = f.deviceId;
funs_New.Add(ssdd);
}
}
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;
}
}
}