Compare commits
2 Commits
c453434c58
...
48b8faed4e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
48b8faed4e | ||
|
|
d3b935bebc |
@@ -9,7 +9,7 @@ public interface IDataManager
|
||||
abstract bool Logout(UserAccount? account);
|
||||
|
||||
// User management
|
||||
abstract UserAccount? CreateUserAccount(string username, string password);
|
||||
abstract UserAccount? CreateUserAccount(UserAccount account, string username, string password);
|
||||
abstract UserProfile? GetUserProfile(UserAccount account);
|
||||
abstract bool DeleteUserAccount(UserAccount account);
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ public class CharacterManager(OwnCharManager manager)
|
||||
Manager.CheckLogin();
|
||||
|
||||
if (group != null)
|
||||
return Manager.DataManager?.GetCharacters(Manager.CurrentUser!, group);
|
||||
return Manager.DataManager.GetCharacters(Manager.CurrentUser, group);
|
||||
|
||||
return null;
|
||||
}
|
||||
@@ -21,7 +21,7 @@ public class CharacterManager(OwnCharManager manager)
|
||||
Manager.CheckLogin();
|
||||
|
||||
if (profile != null)
|
||||
return Manager.DataManager?.GetCharacters(Manager.CurrentUser!, profile);
|
||||
return Manager.DataManager.GetCharacters(Manager.CurrentUser, profile);
|
||||
|
||||
return null;
|
||||
}
|
||||
@@ -34,18 +34,14 @@ public class CharacterManager(OwnCharManager manager)
|
||||
public Character? CreateCharacter(string? name, Group? destination)
|
||||
{
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(name, nameof(name));
|
||||
|
||||
Manager.CheckLogin();
|
||||
|
||||
return Manager.DataManager?.CreateCharacter(Manager.CurrentUser!, name, destination);
|
||||
return Manager.DataManager.CreateCharacter(Manager.CurrentUser, name, destination);
|
||||
}
|
||||
|
||||
public bool DeleteCharacter(Character? character)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(character, nameof(character));
|
||||
|
||||
Manager.CheckLogin();
|
||||
|
||||
return Manager.DataManager?.DeleteCharacter(Manager.CurrentUser!, character) ?? false;
|
||||
return Manager.DataManager.DeleteCharacter(Manager.CurrentUser, character);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,42 +9,44 @@ public class GroupsManager(OwnCharManager manager)
|
||||
public UserProfile? GetOwner(Group? group)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(group, nameof(group));
|
||||
return Manager.DataManager?.GetOwner(Manager.CurrentUser!, group);
|
||||
Manager.CheckLogin();
|
||||
return Manager.DataManager.GetOwner(Manager.CurrentUser, group);
|
||||
}
|
||||
|
||||
public IEnumerable<UserProfile>? GetMembers(Group? group)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(group, nameof(group));
|
||||
return Manager.DataManager?.GetMembers(Manager.CurrentUser!, group);
|
||||
Manager.CheckLogin();
|
||||
return Manager.DataManager.GetMembers(Manager.CurrentUser, group);
|
||||
}
|
||||
|
||||
public bool AddMember(UserProfile? profile, Group? group)
|
||||
{
|
||||
Manager.CheckLogin();
|
||||
ArgumentNullException.ThrowIfNull(profile, nameof(profile));
|
||||
ArgumentNullException.ThrowIfNull(group, nameof(group));
|
||||
return Manager.DataManager?.AddMember(Manager.CurrentUser!, group, profile) ?? false;
|
||||
Manager.CheckLogin();
|
||||
return Manager.DataManager.AddMember(Manager.CurrentUser, group, profile);
|
||||
}
|
||||
|
||||
public bool DeleteMember(UserProfile? profile, Group? group)
|
||||
{
|
||||
Manager.CheckLogin();
|
||||
ArgumentNullException.ThrowIfNull(profile, nameof(profile));
|
||||
ArgumentNullException.ThrowIfNull(group, nameof(group));
|
||||
return Manager.DataManager?.RemoveMember(Manager.CurrentUser!, group, profile) ?? false;
|
||||
Manager.CheckLogin();
|
||||
return Manager.DataManager.RemoveMember(Manager.CurrentUser, group, profile);
|
||||
}
|
||||
|
||||
public Group? CreateGroup(string? name)
|
||||
{
|
||||
Manager.CheckLogin();
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(name, nameof(name));
|
||||
return Manager.DataManager?.CreateGroup(Manager.CurrentUser!, name);
|
||||
Manager.CheckLogin();
|
||||
return Manager.DataManager.CreateGroup(Manager.CurrentUser, name);
|
||||
}
|
||||
|
||||
public bool DeleteGroup(Group? group)
|
||||
{
|
||||
Manager.CheckLogin();
|
||||
ArgumentNullException.ThrowIfNull(group, nameof(group));
|
||||
return Manager.DataManager?.DeleteGroup(Manager.CurrentUser!, group) ?? false;
|
||||
Manager.CheckLogin();
|
||||
return Manager.DataManager.DeleteGroup(Manager.CurrentUser, group);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
using OwnChar.Manager.Exceptions;
|
||||
using OwnChar.Model;
|
||||
using Pilz.Cryptography;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace OwnChar.Manager;
|
||||
|
||||
public class OwnCharManager
|
||||
{
|
||||
// User
|
||||
public bool IsLoggedIn => CurrentUser != null;
|
||||
public bool IsLoggedIn => CurrentUser != null && DataManager != null;
|
||||
public UserAccount? CurrentUser { get; private set; }
|
||||
|
||||
// Data Provider
|
||||
@@ -26,6 +27,7 @@ public class OwnCharManager
|
||||
Characters = new(this);
|
||||
}
|
||||
|
||||
[MemberNotNull(nameof(CurrentUser), nameof(DataManager))]
|
||||
internal protected void CheckLogin()
|
||||
{
|
||||
if (!IsLoggedIn)
|
||||
@@ -36,6 +38,7 @@ public class OwnCharManager
|
||||
/// Tries to login on the given data provider.
|
||||
/// </summary>
|
||||
/// <returns>Returns <see cref="true"/> if the login was successfull and <see cref="false"/> if not.</returns>
|
||||
[MemberNotNullWhen(true, nameof(CurrentUser), nameof(DataManager))]
|
||||
public bool Login(IDataManager? proxy, string? username, SecureString? password)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(proxy, nameof(proxy));
|
||||
|
||||
@@ -10,20 +10,22 @@ public class UserManager(OwnCharManager manager)
|
||||
public UserProfile? GetOwnUserProfile()
|
||||
{
|
||||
Manager.CheckLogin();
|
||||
return Manager.DataManager!.GetUserProfile(Manager.CurrentUser!);
|
||||
return Manager.DataManager.GetUserProfile(Manager.CurrentUser);
|
||||
}
|
||||
|
||||
public UserAccount? CreateUserAccount(string? username, SecureString? password)
|
||||
{
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(username, nameof(username));
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(password, nameof(password));
|
||||
Manager.CheckLogin();
|
||||
username = username.Trim().ToLower();
|
||||
return Manager.DataManager?.CreateUserAccount(username, Utils.HashPassword(username, password));
|
||||
return Manager.DataManager.CreateUserAccount(Manager.CurrentUser, username, Utils.HashPassword(username, password));
|
||||
}
|
||||
|
||||
public bool DeleteUserAccount(UserAccount? account)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(account, nameof(account));
|
||||
return Manager.DataManager?.DeleteUserAccount(account) ?? false;
|
||||
Manager.CheckLogin();
|
||||
return Manager.DataManager.DeleteUserAccount(account);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user