using System;
|
using System.Collections.Generic;
|
using System.Threading;
|
using HDL_ON.DAL.Server;
|
using HDL_ON.Entity;
|
using Shared;
|
|
namespace HDL_ON.UI
|
{
|
public partial class MemberPermissionPage
|
{
|
void LoadEventList()
|
{
|
LoadEvent_RemoveMember();
|
}
|
|
void LoadEvent_RemoveMember()
|
{
|
|
btnDelMember.MouseUpEventHandler = (sender, e) =>
|
{
|
Action action = () =>
|
{
|
RemoveTheMember();
|
};
|
new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.ConfirmToRemoveTheMember, action);
|
};
|
}
|
|
/// <summary>
|
/// 查询所有子账号分享数据
|
/// </summary>
|
void GetShareDataByAccount()
|
{
|
var waitPage = new Loading();
|
bodyView.AddChidren(waitPage);
|
waitPage.Start(Language.StringByID(StringId.PleaseWait));
|
new System.Threading.Thread(() =>
|
{
|
try
|
{
|
var responePack = new HttpServerRequest().GetShareDataByMemberAccount(memberInfo.childAccountId);
|
if (responePack.Code == StateCode.SUCCESS)
|
{
|
if (responePack.Data != null)
|
{
|
var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ShareData>>(responePack.Data.ToString());
|
memberInfo.CurResidenceShareData = responeObj;
|
}
|
else
|
{
|
memberInfo.CurResidenceShareData = new List<ShareData>();
|
}
|
|
Application.RunOnMainThread(() =>
|
{
|
ShowRoomListView();
|
});
|
}
|
else
|
{
|
memberInfo.CurResidenceShareData = new List<ShareData>();
|
IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code);
|
}
|
}
|
catch (Exception ex)
|
{
|
|
}
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
if (waitPage != null)
|
{
|
waitPage.RemoveFromParent();
|
waitPage = null;
|
}
|
});
|
}
|
})
|
{ IsBackground = true }.Start();
|
}
|
|
/// <summary>
|
/// 删除子账号
|
/// </summary>
|
void RemoveTheMember()
|
{
|
var waitPage = new Loading();
|
bodyView.AddChidren(waitPage);
|
waitPage.Start(Language.StringByID(StringId.PleaseWait));
|
new System.Threading.Thread(() =>
|
{
|
try
|
{
|
var responePack = new HttpServerRequest().DeleteResidenceMemberAccount(memberInfo);
|
if (responePack.Code == StateCode.SUCCESS)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
this.RemoveFromParent();
|
backAction();
|
});
|
}
|
else
|
{
|
IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code);
|
}
|
}
|
catch (Exception ex)
|
{
|
|
}
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
if (waitPage != null)
|
{
|
waitPage.RemoveFromParent();
|
waitPage = null;
|
}
|
});
|
}
|
})
|
{ IsBackground = true }.Start();
|
}
|
|
|
/// <summary>
|
/// 一键删除当前房间所有分享
|
/// </summary>
|
/// <param name="funs_Del">需要一键删除的分享数据</param>
|
/// <param name="roomFunctionList">当前房间所有功能列表</param>
|
/// <param name="roomId">如果房间ID为空,则代表管理无分配区域的功能,不需要删除房间分享</param>
|
/// <param name="btnFunctionCount">个数统计数量</param>
|
/// <param name="roomView">背景View</param>
|
void DeleteRoomAllShare(List<ShareData> funs_Del, List<Function> roomFunctionList, string roomId, Button btnFunctionCount, RowLayout roomView)
|
{
|
//需要删除的分享为0
|
if (funs_Del == null || funs_Del.Count == 0)
|
{
|
//关闭右滑菜单
|
roomView.HideMenu();
|
Utlis.ShowTip(Language.StringByID(StringId.NoShare));
|
return;
|
}
|
|
var waitPage = new Loading();
|
bodyView.AddChidren(waitPage);
|
waitPage.Start(Language.StringByID(StringId.PleaseWait));
|
|
new Thread(() =>
|
{
|
try
|
{
|
bool result = false;
|
//如果房间ID为空,则代表管理无分配区域的功能,不需要删除房间分享
|
if (!string.IsNullOrEmpty(roomId))
|
{
|
//删除房间分享
|
var success = DeleteShareRoom(roomId);
|
if (success)
|
{
|
Utlis.WriteLine("删除房间分享成功");
|
}
|
else
|
{
|
Utlis.WriteLine("删除房间分享失败");
|
}
|
}
|
|
//2.批量删除分享
|
var deleteShareObj = new DeleteShareObj()
|
{
|
shareDatas = funs_Del,
|
homeId = DB_ResidenceData.Instance.CurrentRegion.RegionID,
|
};
|
result = LoadMethod_DelSharedData(deleteShareObj);
|
|
if (!result)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.delFail), true);
|
});
|
}
|
else
|
{
|
//删除分享成功
|
//4.1管理最终的分享列表
|
var funs_final = new List<ShareData>();
|
funs_final.AddRange(memberInfo.CurResidenceShareData);
|
//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);
|
}
|
}
|
|
Application.RunOnMainThread(() =>
|
{
|
new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.SavedSuccessfully), true);
|
//清空
|
funs_Del.Clear();
|
memberInfo.CurResidenceShareData = funs_final;
|
btnFunctionCount.Text = 0 + "/" + roomFunctionList.Count.ToString();
|
//关闭右滑菜单
|
roomView.HideMenu();
|
});
|
|
}
|
}
|
catch { }
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
if (waitPage != null)
|
{
|
waitPage.RemoveFromParent();
|
waitPage = null;
|
}
|
});
|
|
}
|
|
})
|
{ IsBackground = true }.Start();
|
}
|
|
/// <summary>
|
/// 删除房间分享
|
/// </summary>
|
/// <returns></returns>
|
bool DeleteShareRoom(string roomId)
|
{
|
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.RegionID,
|
};
|
var responePack = new HttpServerRequest().DeleteShareData(deleteShareObj);
|
if (responePack.Code != StateCode.SUCCESS)
|
{
|
return false;
|
}
|
else
|
{
|
return true;
|
}
|
}
|
|
/// <summary>
|
/// 删除共享数据点击事件
|
/// </summary>
|
/// <param name="function"></param>
|
bool LoadMethod_DelSharedData(DeleteShareObj sd)
|
{
|
var responePack = new HttpServerRequest().DeleteShareData(sd);
|
if (responePack.Code != StateCode.SUCCESS)
|
{
|
return false;
|
}
|
else
|
{
|
return true;
|
}
|
}
|
}
|
|
}
|