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; } } }