Compare commits

...

1 Commits

Author SHA1 Message Date
6a48628fd8 d 2024-06-30 18:32:07 +02:00
2 changed files with 42 additions and 9 deletions

View File

@@ -1,5 +1,6 @@
using OwnChar.Api;
using OwnChar.Model;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace OwnChar.Data.Managers;
@@ -109,7 +110,36 @@ public class DefaultDataManager : IDataManager
if (e.Action != DataManagerActions.Associate)
return false;
// ...
if (e.Action == DataManagerActions.Association.Owner)
{
if (e.Object is Group group)
{
switch (e.ActionType)
{
case DataManagerActionType.Get:
e.Result = DataProvider.GetOwner(group);
return true;
case DataManagerActionType.Set:
if (e.Parameters.Length >= 1 && e.Parameters[0] is UserProfile profile)
return DataProvider.SetOwner(group, profile);
break;
}
}
if (e.Object is Character character)
{
switch (e.ActionType)
{
case DataManagerActionType.Get:
e.Result = DataProvider.GetOwner(character);
return true;
case DataManagerActionType.Set:
if (e.Parameters.Length >= 1 && e.Parameters[0] is UserProfile profile)
return DataProvider.SetOwner(character, profile);
break;
}
}
}
return false;
}

View File

@@ -1,6 +1,7 @@
using OwnChar.Api;
using OwnChar.Data;
using OwnChar.Model;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace OwnChar.Manager.Modules;
@@ -9,42 +10,44 @@ public class GroupsManager(OwnCharManager manager) : OwnCharManagerModule(manage
public UserProfile? GetOwner(Group? group)
{
ArgumentNullException.ThrowIfNull(group, nameof(group));
return Manager.DataManager?.GetOwner(Manager.CurrentUser!, group);
Manager.CheckLogin();
return Manager.DataManager.ExecuteAction(DataManagerActions.Association.Members, DataManagerActionType.Get, Manager.CurrentUser!, group).HasSuccess;
}
public IEnumerable<UserProfile>? GetMembers(Group? group)
{
ArgumentNullException.ThrowIfNull(group, nameof(group));
return Manager.DataManager?.GetMembers(Manager.CurrentUser!, group);
Manager.CheckLogin();
return Manager.DataManager.ExecuteAction(DataManagerActions.Association.Members, DataManagerActionType.Get, Manager.CurrentUser!, group).HasSuccess;
}
public bool AddMember(UserProfile? profile, Group? group)
{
Manager.CheckLogin();
ArgumentNullException.ThrowIfNull(profile, nameof(profile));
ArgumentNullException.ThrowIfNull(group, nameof(group));
return Manager.DataManager.ExecuteAction(DataManagerActions.Association.Members, DataManagerActionType.Set, Manager.CurrentUser!, profile, group).HasSuccess;
Manager.CheckLogin();
return Manager.DataManager.ExecuteAction(DataManagerActions.Association.Members, DataManagerActionType.Set, Manager.CurrentUser!, group, profile).HasSuccess;
}
public bool DeleteMember(UserProfile? profile, Group? group)
{
Manager.CheckLogin();
ArgumentNullException.ThrowIfNull(profile, nameof(profile));
ArgumentNullException.ThrowIfNull(group, nameof(group));
return Manager.DataManager.ExecuteAction(DataManagerActions.Association.Members, DataManagerActionType.Delete, Manager.CurrentUser!, profile, group).HasSuccess;
Manager.CheckLogin();
return Manager.DataManager.ExecuteAction(DataManagerActions.Association.Members, DataManagerActionType.Delete, Manager.CurrentUser!, group, profile).HasSuccess;
}
public Group? CreateGroup(string? name)
{
Manager.CheckLogin();
ArgumentException.ThrowIfNullOrWhiteSpace(name, nameof(name));
Manager.CheckLogin();
return Manager.DataManager.ExecuteAction(DataManagerActions.Creation.Group, DataManagerActionType.Default, Manager.CurrentUser!, null, name).Result as Group;
}
public bool DeleteGroup(Group? group)
{
Manager.CheckLogin();
ArgumentNullException.ThrowIfNull(group, nameof(group));
Manager.CheckLogin();
return Manager.DataManager.ExecuteAction(DataManagerActions.Delete, DataManagerActionType.Default, Manager.CurrentUser!, group).HasSuccess;
}
}