Files
Library/OwnChar/Modules/GroupsManager.cs
Schedel Pascal b08c7619a4 uff, lot of work
2024-08-02 11:47:38 +02:00

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;
}
}