Files
Library/OwnChar/Manager/GroupsManager.cs
2024-06-17 08:30:40 +02:00

53 lines
1.7 KiB
C#

using OwnChar.Model;
namespace OwnChar.Manager;
public class GroupsManager(OwnCharManager manager)
{
public OwnCharManager Manager { get; } = manager;
public UserProfile? GetOwner(Group? group)
{
ArgumentNullException.ThrowIfNull(group, nameof(group));
Manager.CheckLogin();
return Manager.DataManager.GetOwner(Manager.CurrentUser, group);
}
public IEnumerable<UserProfile>? GetMembers(Group? group)
{
ArgumentNullException.ThrowIfNull(group, nameof(group));
Manager.CheckLogin();
return Manager.DataManager.GetMembers(Manager.CurrentUser, group);
}
public bool AddMember(UserProfile? profile, Group? group)
{
ArgumentNullException.ThrowIfNull(profile, nameof(profile));
ArgumentNullException.ThrowIfNull(group, nameof(group));
Manager.CheckLogin();
return Manager.DataManager.AddMember(Manager.CurrentUser, group, profile);
}
public bool DeleteMember(UserProfile? profile, Group? group)
{
ArgumentNullException.ThrowIfNull(profile, nameof(profile));
ArgumentNullException.ThrowIfNull(group, nameof(group));
Manager.CheckLogin();
return Manager.DataManager.RemoveMember(Manager.CurrentUser, group, profile);
}
public Group? CreateGroup(string? name)
{
ArgumentException.ThrowIfNullOrWhiteSpace(name, nameof(name));
Manager.CheckLogin();
return Manager.DataManager.CreateGroup(Manager.CurrentUser, name);
}
public bool DeleteGroup(Group? group)
{
ArgumentNullException.ThrowIfNull(group, nameof(group));
Manager.CheckLogin();
return Manager.DataManager.DeleteGroup(Manager.CurrentUser, group);
}
}