| | |
| | | LoadEvent_OptionClick(); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 底部操作按钮点击事件 |
| | | /// </summary> |
| | |
| | | { |
| | | btnOption.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | if (titleId == StringId.PermissionToUse)//从个人中心进入单独分享 |
| | | Action action = () => |
| | | { |
| | | new Thread(() => |
| | | UploadShareDeviceList(); |
| | | }; |
| | | //是否需要保存 |
| | | new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.IfNeedToSave, action); |
| | | |
| | | //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(() => |
| | | { |
| | | bool result = false; |
| | | Action act = () => { }; |
| | | 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.id, |
| | | }; |
| | | 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.id, |
| | | }; |
| | | result = LoadMethod_AddShareData(addShareObj); |
| | | |
| | | if (!result) |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | act = new PublicAssmebly().TipLoadingMsgDialog(Language.StringByID(StringId.SavingPleaseWait)); |
| | | new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingFailed), true); |
| | | }); |
| | | foreach (var f in funs_Del) |
| | | } |
| | | |
| | | 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) |
| | | { |
| | | LoadMethod_DelSharedData(f); |
| | | } |
| | | foreach (var f in funs_New) |
| | | { |
| | | var sd = funs.Find((obj) => obj.ShareName == f.ShareName); |
| | | //如果该功能已经分享,更新原有的数据 |
| | | var sd = funs_final.Find((obj) => obj.shareTypeId == share_d.shareTypeId); |
| | | //如果该功能已经分享,不用分享 |
| | | 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); |
| | | }); |
| | | funs_final.Remove(share_d); |
| | | } |
| | | } |
| | | //4.3添加新增的 |
| | | funs_final.AddRange(funs_NeedAdd); |
| | | |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | act(); |
| | | new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true); |
| | | memberInfo.CurResidenceShareData = funs_final; |
| | | }); |
| | | if (result) |
| | | Thread.Sleep(1600); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | 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(); |
| | | MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent(); |
| | | refreshAction?.Invoke(); |
| | | }); |
| | | } |
| | | } |
| | | else |
| | | catch { } |
| | | finally |
| | | { |
| | | //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; |
| | | |
| | | } |
| | | }; |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 新增共享数据点击事件 |
| | | /// </summary> |
| | | bool LoadMethod_AddShareData(ShareData ssdd) |
| | | bool LoadMethod_AddShareData(AddShareObj ssdd) |
| | | { |
| | | //增加共享数据目录 |
| | | ResponsePack responePack = new HttpServerRequest().AddShareData(ssdd); |
| | | if (responePack.StateCode.ToUpper() != "SUCCESS") |
| | | var responePack = new HttpServerRequest().AddShareData(ssdd); |
| | | if (responePack.Code != StateCode.SUCCESS) |
| | | { |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | ssdd.DistributedMark = responePack.ResponseData.ToString(); |
| | | // 更新共享数据 |
| | | return EditShareData(ssdd); |
| | | return true; |
| | | //var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ShareData>(responePack.Data.ToString()); |
| | | //ssdd.id = responeObj.id; |
| | | //// 更新共享数据 |
| | | //return EditShareData(ssdd); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 删除共享数据点击事件 |
| | | /// </summary> |
| | | /// <param name="function"></param> |
| | | bool LoadMethod_DelSharedData(ShareData sd) |
| | | bool LoadMethod_DelSharedData(DeleteShareObj sd) |
| | | { |
| | | ResponsePack responePack = new HttpServerRequest().DeleteShareData(sd); |
| | | if (responePack.StateCode.ToUpper() != "SUCCESS") |
| | | var responePack = new HttpServerRequest().DeleteShareData(sd); |
| | | if (responePack.Code != StateCode.SUCCESS) |
| | | { |
| | | return false; |
| | | } |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新共享数据 |
| | | /// 管理房间分享操作 |
| | | /// funs_New 大于1分享房间 |
| | | /// </summary> |
| | | bool EditShareData(ShareData sd) |
| | | bool ManageRoomSharing() |
| | | { |
| | | ResponsePack responePack = new HttpServerRequest().EditShareData(sd); |
| | | if (responePack.StateCode.ToUpper() == "SUCCESS") |
| | | bool success = false; |
| | | //1.管理最终属于房间的分享 |
| | | if (funs_RoomAll != null && funs_RoomAll.Count > 0) |
| | | { |
| | | return true; |
| | | //最终属于房间的分享大于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() |
| | | { |
| | | shareType = ShareType.ROOM.ToString(), |
| | | shareTypeId = roomId |
| | | }); |
| | | List<string> childAccountIds = new List<string>(); |
| | | childAccountIds.Add(memberInfo.childAccountId); |
| | | var addShareObj = new AddShareObj() |
| | | { |
| | | childAccountIds = childAccountIds, |
| | | homeId = DB_ResidenceData.Instance.CurrentRegion.id, |
| | | shareDatas = roomList |
| | | }; |
| | | var responePack = new HttpServerRequest().AddShareData(addShareObj); |
| | | if (responePack.Code != StateCode.SUCCESS) |
| | | { |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | void LoadMethod_SharedDataChange(Button btnChoose, Button btn2, FrameLayout btn3, Function function) |
| | | /// <summary> |
| | | /// 删除房间分享 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | bool DeleteShareRoom() |
| | | { |
| | | var roomList = new List<ShareData>(); |
| | | roomList.Add(new ShareData() |
| | | { |
| | | shareType = ShareType.ROOM.ToString(), |
| | | shareTypeId = roomId |
| | | }); |
| | | |
| | | var deleteShareObj = new DeleteShareObj() |
| | | { |
| | | shareDatas = roomList, |
| | | homeId = DB_ResidenceData.Instance.CurrentRegion.id, |
| | | }; |
| | | var responePack = new HttpServerRequest().DeleteShareData(deleteShareObj); |
| | | if (responePack.Code != StateCode.SUCCESS) |
| | | { |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | /// <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.ShareName == function.sid); |
| | | 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)) |
| | | { |
| | |
| | | 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); |
| | | 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.ShareName == f.sid) == null) |
| | | if (funs_RoomAll.Find((obj) => obj.shareTypeId == f.shareTypeId) == null) |
| | | { |
| | | btnChooseAll.IsSelected = false; |
| | | break; |
| | |
| | | } |
| | | else |
| | | { |
| | | var onFuns = funs_New.Find((obj) => obj.ShareName == function.sid); |
| | | 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) |
| | |
| | | btn2.MouseUpEventHandler = eventHandler; |
| | | btn3.MouseUpEventHandler = eventHandler; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 全选按钮点击事件 |
| | | /// </summary> |
| | |
| | | { |
| | | 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.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); |
| | | 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.ShareName == f.sid); |
| | | 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; |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |