53 lines
1.7 KiB
C#
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);
|
|
}
|
|
}
|