From 6a48628fd80dc6887e707e673a33a5ba6cc5e0f2 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Sun, 30 Jun 2024 18:32:07 +0200 Subject: [PATCH] d --- OwnChar/Data/Managers/DefaultDataManager.cs | 32 ++++++++++++++++++++- OwnChar/Manager/Modules/GroupsManager.cs | 19 ++++++------ 2 files changed, 42 insertions(+), 9 deletions(-) diff --git a/OwnChar/Data/Managers/DefaultDataManager.cs b/OwnChar/Data/Managers/DefaultDataManager.cs index 5c1ec3d..d8df803 100644 --- a/OwnChar/Data/Managers/DefaultDataManager.cs +++ b/OwnChar/Data/Managers/DefaultDataManager.cs @@ -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; } diff --git a/OwnChar/Manager/Modules/GroupsManager.cs b/OwnChar/Manager/Modules/GroupsManager.cs index b79e4a8..a08dfa1 100644 --- a/OwnChar/Manager/Modules/GroupsManager.cs +++ b/OwnChar/Manager/Modules/GroupsManager.cs @@ -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? 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; } }