62 lines
2.8 KiB
C#
62 lines
2.8 KiB
C#
namespace OwnChar.Modules;
|
|
|
|
internal class GroupsManager(OwnCharManager manager) : OwnCharManagerModule(manager), IGroupsManager
|
|
{
|
|
public UserProfileBase? GetOwner(GroupBase? group)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(group, nameof(group));
|
|
Manager.CheckLogin();
|
|
return Manager.DataManager.ExecuteAction(DataManagerActions.Association.Owner, DataManagerActionType.Get, Manager.CurrentUser, group).Result as UserProfileBase;
|
|
}
|
|
|
|
public IQueryable<GroupBase>? GetGroups(UserProfileBase? profile)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(profile, nameof(profile));
|
|
Manager.CheckLogin();
|
|
return Manager.DataManager.ExecuteAction(DataManagerActions.Getter.Group, DataManagerActionType.Get, Manager.CurrentUser, profile) as IQueryable<GroupBase>;
|
|
}
|
|
|
|
public IQueryable<GroupBase>? GetGroups()
|
|
{
|
|
Manager.CheckLogin();
|
|
return Manager.DataManager.ExecuteAction(DataManagerActions.Getter.Group, DataManagerActionType.Get, Manager.CurrentUser, null) as IQueryable<GroupBase>;
|
|
}
|
|
|
|
public IQueryable<UserProfileBase>? GetMembers(GroupBase? group)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(group, nameof(group));
|
|
Manager.CheckLogin();
|
|
return Manager.DataManager.ExecuteAction(DataManagerActions.Association.Members, DataManagerActionType.Get, Manager.CurrentUser, group).Result as IQueryable<UserProfileBase>;
|
|
}
|
|
|
|
public bool AddMember(UserProfileBase? profile, GroupBase? group)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(profile, nameof(profile));
|
|
ArgumentNullException.ThrowIfNull(group, nameof(group));
|
|
Manager.CheckLogin();
|
|
return Manager.DataManager.ExecuteAction(DataManagerActions.Association.Members, DataManagerActionType.Set, Manager.CurrentUser, group, profile).HasSuccess;
|
|
}
|
|
|
|
public bool RemoveMember(UserProfileBase? profile, GroupBase? group)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(profile, nameof(profile));
|
|
ArgumentNullException.ThrowIfNull(group, nameof(group));
|
|
Manager.CheckLogin();
|
|
return Manager.DataManager.ExecuteAction(DataManagerActions.Association.Members, DataManagerActionType.Delete, Manager.CurrentUser, group, profile).HasSuccess;
|
|
}
|
|
|
|
public GroupBase? CreateGroup(string? name)
|
|
{
|
|
ArgumentException.ThrowIfNullOrWhiteSpace(name, nameof(name));
|
|
Manager.CheckLogin();
|
|
return Manager.DataManager.ExecuteAction(DataManagerActions.Getter.Group, DataManagerActionType.Set, Manager.CurrentUser, null, name).Result as GroupBase;
|
|
}
|
|
|
|
public bool DeleteGroup(GroupBase? group)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(group, nameof(group));
|
|
Manager.CheckLogin();
|
|
return Manager.DataManager.ExecuteAction(DataManagerActions.Delete, DataManagerActionType.Default, Manager.CurrentUser, group).HasSuccess;
|
|
}
|
|
}
|