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);
};
}
///
/// 查询所有子账号分享数据
///
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>(responePack.Data.ToString());
memberInfo.CurResidenceShareData = responeObj;
}
else
{
memberInfo.CurResidenceShareData = new List();
}
Application.RunOnMainThread(() =>
{
ShowRoomListView();
});
}
else
{
memberInfo.CurResidenceShareData = new List();
IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code);
}
}
catch (Exception ex)
{
}
finally
{
Application.RunOnMainThread(() =>
{
if (waitPage != null)
{
waitPage.RemoveFromParent();
waitPage = null;
}
});
}
})
{ IsBackground = true }.Start();
}
///
/// 删除子账号
///
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();
}
///
/// 一键删除当前房间所有分享
///
/// 需要一键删除的分享数据
/// 当前房间所有功能列表
/// 如果房间ID为空,则代表管理无分配区域的功能,不需要删除房间分享
/// 个数统计数量
/// 背景View
void DeleteRoomAllShare(List funs_Del, List roomFunctionOrSceneList, 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;
//2020-12-22 屏蔽房间分享管理
////如果房间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.id,
};
result = LoadMethod_DelSharedData(deleteShareObj);
if (!result)
{
Application.RunOnMainThread(() =>
{
new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.delFail), true);
});
}
else
{
//删除分享成功
//4.1管理最终的分享列表
var funs_final = new List();
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 + "/" + roomFunctionOrSceneList.Count.ToString();
//关闭右滑菜单
roomView.HideMenu();
});
}
}
catch { }
finally
{
Application.RunOnMainThread(() =>
{
if (waitPage != null)
{
waitPage.RemoveFromParent();
waitPage = null;
}
});
}
})
{ IsBackground = true }.Start();
}
///
/// 删除房间分享
///
///
bool DeleteShareRoom(string roomId)
{
var roomList = new List();
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;
}
}
///
/// 删除共享数据点击事件
///
///
bool LoadMethod_DelSharedData(DeleteShareObj sd)
{
var responePack = new HttpServerRequest().DeleteShareData(sd);
if (responePack.Code != StateCode.SUCCESS)
{
return false;
}
else
{
return true;
}
}
}
}