| | |
| | | { |
| | | new Thread(() => |
| | | { |
| | | bool result = false; |
| | | Action act = () => { }; |
| | | Application.RunOnMainThread(() => |
| | | try |
| | | { |
| | | 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<ShareData>(); |
| | | foreach (var f in funs_New) |
| | | { |
| | | var sd = funs.Find((obj) => obj.shareTypeId == f.shareTypeId); |
| | | //如果该功能已经分享,更新原有的数据 |
| | | if (null == sd) |
| | | bool result = false; |
| | | Action act = () => { }; |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | funs_NeedAdd.Add(f); |
| | | act = new PublicAssmebly().TipLoadingMsgDialog(Language.StringByID(StringId.SavingPleaseWait)); |
| | | }); |
| | | |
| | | //1.管理房间分享 |
| | | if (funs_New != null && funs_New.Count > 0) |
| | | { |
| | | //分享设备大于0 |
| | | var success = ShareRoom(); |
| | | if (success) |
| | | { |
| | | Utlis.WriteLine("添加房间分享成功"); |
| | | } |
| | | else |
| | | { |
| | | Utlis.WriteLine("添加房间分享失败"); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | var success = DeleteShareRoom(); |
| | | if (success) |
| | | { |
| | | Utlis.WriteLine("删除房间分享成功"); |
| | | } |
| | | else |
| | | { |
| | | Utlis.WriteLine("删除房间分享失败"); |
| | | } |
| | | } |
| | | |
| | | List<string> childAccountIds = new List<string>(); |
| | | childAccountIds.Add(memberInfo.childAccountId); |
| | | var addShareObj = new AddShareObj() |
| | | { |
| | | shareDatas = funs_NeedAdd, |
| | | childAccountIds = childAccountIds, |
| | | homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID, |
| | | }; |
| | | result = LoadMethod_AddShareData(addShareObj); |
| | | //2.批量删除分享 |
| | | var deleteShareObj = new DeleteShareObj() |
| | | { |
| | | shareDatas = funs_Del, |
| | | homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID, |
| | | }; |
| | | LoadMethod_DelSharedData(deleteShareObj); |
| | | |
| | | if (!result) |
| | | { |
| | | //3.批量上传 |
| | | var funs_NeedAdd = new List<ShareData>(); |
| | | foreach (var f in funs_New) |
| | | { |
| | | var sd = funs.Find((obj) => obj.shareTypeId == f.shareTypeId); |
| | | //如果该功能已经分享,不用分享 |
| | | if (null == sd) |
| | | { |
| | | funs_NeedAdd.Add(f); |
| | | |
| | | } |
| | | } |
| | | |
| | | List<string> childAccountIds = new List<string>(); |
| | | 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(() => |
| | | { |
| | | new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingFailed), true); |
| | | act(); |
| | | }); |
| | | } |
| | | |
| | | |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | act(); |
| | | }); |
| | | if (result) |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | if (result) |
| | | { |
| | | new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true); |
| | | memberInfo.CurResidenceShareDate = funs_New; |
| | | }); |
| | | Thread.Sleep(1600); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | //4.1管理最终的分享列表 |
| | | var funs_final = new List<ShareData>(); |
| | | funs_final.AddRange(funs); |
| | | //4.2移除删除的 |
| | | foreach (var share_d in funs_Del) |
| | | { |
| | | var sd = funs_final.Find((obj) => obj.shareTypeId == share_d.shareTypeId); |
| | | //如果该功能已经分享,不用分享 |
| | | if (null != sd) |
| | | { |
| | | funs_final.Remove(share_d); |
| | | } |
| | | } |
| | | //4.3添加新增的 |
| | | funs_final.AddRange(funs_NeedAdd); |
| | | |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true); |
| | | memberInfo.CurResidenceShareDate = funs_final; |
| | | }); |
| | | 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()); |
| | | }); |
| | | refreshFunctionCount?.Invoke(funs_New.Count.ToString()); |
| | | }); |
| | | } |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 分享房间 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | bool ShareRoom() |
| | | { |
| | | var roomList = new List<ShareData>(); |
| | | roomList.Add(new ShareData() { |
| | | shareType = ShareType.ROOM.ToString(), |
| | | shareTypeId = room.roomId |
| | | }); |
| | | List<string> childAccountIds = new List<string>(); |
| | | childAccountIds.Add(memberInfo.childAccountId); |
| | | var addShareObj = new AddShareObj() |
| | | { |
| | | childAccountIds = childAccountIds, |
| | | homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID, |
| | | shareDatas = roomList |
| | | }; |
| | | var responePack = new HttpServerRequest().AddShareData(addShareObj); |
| | | if (responePack.Code != StateCode.SUCCESS) |
| | | { |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 删除房间分享 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | bool DeleteShareRoom() |
| | | { |
| | | var roomList = new List<ShareData>(); |
| | | roomList.Add(new ShareData() |
| | | { |
| | | shareType = ShareType.ROOM.ToString(), |
| | | shareTypeId = room.roomId |
| | | }); |
| | | |
| | | var deleteShareObj = new DeleteShareObj() |
| | | { |
| | | shareDatas = roomList, |
| | | homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID, |
| | | }; |
| | | var responePack = new HttpServerRequest().DeleteShareData(deleteShareObj); |
| | | if (responePack.Code != StateCode.SUCCESS) |
| | | { |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | ///// <summary> |
| | | ///// 更新共享数据 |
| | | ///// </summary> |