code cleanup
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
using OwnChar.Model;
|
using OwnChar.Model;
|
||||||
|
|
||||||
namespace OwnChar.Data
|
namespace OwnChar.Data;
|
||||||
|
|
||||||
|
public interface IDataManager
|
||||||
{
|
{
|
||||||
public interface IDataManager
|
|
||||||
{
|
|
||||||
// Login
|
// Login
|
||||||
abstract UserAccount? Login(string username, string password);
|
abstract UserAccount? Login(string username, string password);
|
||||||
abstract bool Logout(UserAccount? account);
|
abstract bool Logout(UserAccount? account);
|
||||||
@@ -16,5 +16,4 @@ namespace OwnChar.Data
|
|||||||
// Group management
|
// Group management
|
||||||
abstract UserProfile? GetOwner(Group group);
|
abstract UserProfile? GetOwner(Group group);
|
||||||
abstract IEnumerable<UserProfile>? GetMembers(Group group);
|
abstract IEnumerable<UserProfile>? GetMembers(Group group);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
using OwnChar.Model;
|
using OwnChar.Model;
|
||||||
|
|
||||||
namespace OwnChar.Data
|
namespace OwnChar.Data;
|
||||||
|
|
||||||
|
public interface IDataProvider
|
||||||
{
|
{
|
||||||
public interface IDataProvider
|
|
||||||
{
|
|
||||||
// General
|
// General
|
||||||
abstract bool IsInitialized();
|
abstract bool IsInitialized();
|
||||||
|
|
||||||
@@ -25,5 +25,4 @@ namespace OwnChar.Data
|
|||||||
abstract IEnumerable<UserProfile>? GetGroupMembers(Group group);
|
abstract IEnumerable<UserProfile>? GetGroupMembers(Group group);
|
||||||
abstract UserProfile? GetOwner(Group group);
|
abstract UserProfile? GetOwner(Group group);
|
||||||
abstract UserProfile? GetOwner(Character character);
|
abstract UserProfile? GetOwner(Character character);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
namespace OwnChar.Data.Managers
|
namespace OwnChar.Data.Managers;
|
||||||
|
|
||||||
|
public class ClientDataManager
|
||||||
{
|
{
|
||||||
public class ClientDataManager
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
using OwnChar.Model;
|
using OwnChar.Model;
|
||||||
|
|
||||||
namespace OwnChar.Data.Managers
|
namespace OwnChar.Data.Managers;
|
||||||
|
|
||||||
|
public class DefaultDataManager(IDataProvider dataProvider) : IDataManager
|
||||||
{
|
{
|
||||||
public class DefaultDataManager(IDataProvider dataProvider) : IDataManager
|
|
||||||
{
|
|
||||||
private const string defaultUsername = "admin";
|
private const string defaultUsername = "admin";
|
||||||
private const string defaultPassword = "admin";
|
private const string defaultPassword = "admin";
|
||||||
|
|
||||||
@@ -75,5 +75,4 @@ namespace OwnChar.Data.Managers
|
|||||||
DataProvider.Delete(account);
|
DataProvider.Delete(account);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
using OwnChar.Data.Providers.JsonFile.Model;
|
using OwnChar.Data.Providers.JsonFile.Model;
|
||||||
using OwnChar.Model;
|
|
||||||
|
|
||||||
namespace OwnChar.Data.Providers.JsonFile
|
namespace OwnChar.Data.Providers.JsonFile;
|
||||||
|
|
||||||
|
public class JsonFile
|
||||||
{
|
{
|
||||||
public class JsonFile
|
|
||||||
{
|
|
||||||
public List<JsonUserAccount> UserAccounts { get; } = [];
|
public List<JsonUserAccount> UserAccounts { get; } = [];
|
||||||
public List<JsonCharacter> Characters { get; } = [];
|
public List<JsonCharacter> Characters { get; } = [];
|
||||||
public List<JsonGroup> Groups { get; } = [];
|
public List<JsonGroup> Groups { get; } = [];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using OwnChar.Data.Providers.JsonFile.Model;
|
using OwnChar.Data.Providers.JsonFile.Model;
|
||||||
using OwnChar.Model;
|
using OwnChar.Model;
|
||||||
using System.Net.NetworkInformation;
|
|
||||||
|
|
||||||
namespace OwnChar.Data.Providers.JsonFile
|
namespace OwnChar.Data.Providers.JsonFile;
|
||||||
|
|
||||||
|
public class JsonFileDataProvider : IDataProvider
|
||||||
{
|
{
|
||||||
public class JsonFileDataProvider : IDataProvider
|
|
||||||
{
|
|
||||||
public JsonFile JsonFile { get; protected set; }
|
public JsonFile JsonFile { get; protected set; }
|
||||||
public string JsonFilePath { get; protected set; }
|
public string JsonFilePath { get; protected set; }
|
||||||
|
|
||||||
@@ -77,7 +76,7 @@ namespace OwnChar.Data.Providers.JsonFile
|
|||||||
if (!JsonFile.Groups.Contains(group))
|
if (!JsonFile.Groups.Contains(group))
|
||||||
JsonFile.Groups.Add(group);
|
JsonFile.Groups.Add(group);
|
||||||
}
|
}
|
||||||
else if(obj is JsonUserAccount account)
|
else if (obj is JsonUserAccount account)
|
||||||
{
|
{
|
||||||
if (!JsonFile.UserAccounts.Contains(account))
|
if (!JsonFile.UserAccounts.Contains(account))
|
||||||
JsonFile.UserAccounts.Add(account);
|
JsonFile.UserAccounts.Add(account);
|
||||||
@@ -217,5 +216,4 @@ namespace OwnChar.Data.Providers.JsonFile
|
|||||||
return jcharacter.Owner;
|
return jcharacter.Owner;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
using OwnChar.Model;
|
using OwnChar.Model;
|
||||||
|
|
||||||
namespace OwnChar.Data.Providers.JsonFile.Model
|
namespace OwnChar.Data.Providers.JsonFile.Model;
|
||||||
|
|
||||||
|
public class JsonCharacter : Character
|
||||||
{
|
{
|
||||||
public class JsonCharacter : Character
|
|
||||||
{
|
|
||||||
public virtual JsonUserProfile? Owner { get; set; }
|
public virtual JsonUserProfile? Owner { get; set; }
|
||||||
public virtual List<JsonProp> Properties { get; } = [];
|
public virtual List<JsonProp> Properties { get; } = [];
|
||||||
public virtual List<JsonPropCat> PropertyCategories { get; } = [];
|
public virtual List<JsonPropCat> PropertyCategories { get; } = [];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
using OwnChar.Model;
|
using OwnChar.Model;
|
||||||
|
|
||||||
namespace OwnChar.Data.Providers.JsonFile.Model
|
namespace OwnChar.Data.Providers.JsonFile.Model;
|
||||||
|
|
||||||
|
public class JsonGroup : Group
|
||||||
{
|
{
|
||||||
public class JsonGroup : Group
|
|
||||||
{
|
|
||||||
public virtual JsonUserProfile? Owner { get; set; }
|
public virtual JsonUserProfile? Owner { get; set; }
|
||||||
public virtual List<JsonUserProfile> Members { get; } = [];
|
public virtual List<JsonUserProfile> Members { get; } = [];
|
||||||
public virtual List<JsonCharacter> Characters { get; } = [];
|
public virtual List<JsonCharacter> Characters { get; } = [];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
using OwnChar.Model;
|
using OwnChar.Model;
|
||||||
|
|
||||||
namespace OwnChar.Data.Providers.JsonFile.Model
|
namespace OwnChar.Data.Providers.JsonFile.Model;
|
||||||
|
|
||||||
|
public class JsonProp : Property
|
||||||
{
|
{
|
||||||
public class JsonProp : Property
|
|
||||||
{
|
|
||||||
public virtual JsonPropCat? Category { get; set; } = null;
|
public virtual JsonPropCat? Category { get; set; } = null;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
using OwnChar.Model;
|
using OwnChar.Model;
|
||||||
|
|
||||||
namespace OwnChar.Data.Providers.JsonFile.Model
|
namespace OwnChar.Data.Providers.JsonFile.Model;
|
||||||
|
|
||||||
|
public class JsonPropCat : PropertyCategory
|
||||||
{
|
{
|
||||||
public class JsonPropCat : PropertyCategory
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,13 +2,12 @@
|
|||||||
using Newtonsoft.Json.Converters;
|
using Newtonsoft.Json.Converters;
|
||||||
using OwnChar.Model;
|
using OwnChar.Model;
|
||||||
|
|
||||||
namespace OwnChar.Data.Providers.JsonFile.Model
|
namespace OwnChar.Data.Providers.JsonFile.Model;
|
||||||
|
|
||||||
|
public class JsonUserAccount : UserAccount
|
||||||
{
|
{
|
||||||
public class JsonUserAccount : UserAccount
|
|
||||||
{
|
|
||||||
public virtual JsonUserProfile? Profile { get; set; }
|
public virtual JsonUserProfile? Profile { get; set; }
|
||||||
|
|
||||||
[JsonConverter(typeof(StringEnumConverter))]
|
[JsonConverter(typeof(StringEnumConverter))]
|
||||||
public override UserType Type { get => base.Type; set => base.Type = value; }
|
public override UserType Type { get => base.Type; set => base.Type = value; }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
using OwnChar.Model;
|
using OwnChar.Model;
|
||||||
|
|
||||||
namespace OwnChar.Data.Providers.JsonFile.Model
|
namespace OwnChar.Data.Providers.JsonFile.Model;
|
||||||
|
|
||||||
|
public class JsonUserProfile : UserProfile
|
||||||
{
|
{
|
||||||
public class JsonUserProfile : UserProfile
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
using OwnChar.Model;
|
using OwnChar.Model;
|
||||||
|
|
||||||
namespace OwnChar.Manager
|
namespace OwnChar.Manager;
|
||||||
|
|
||||||
|
public class CharacterManager(OwnCharManager manager)
|
||||||
{
|
{
|
||||||
public class CharacterManager(OwnCharManager manager)
|
|
||||||
{
|
|
||||||
public OwnCharManager Manager { get; } = manager;
|
public OwnCharManager Manager { get; } = manager;
|
||||||
|
|
||||||
public IEnumerable<Character>? GetCharacters(Group? group)
|
public IEnumerable<Character>? GetCharacters(Group? group)
|
||||||
@@ -15,5 +15,4 @@ namespace OwnChar.Manager
|
|||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
namespace OwnChar.Manager.Exceptions
|
namespace OwnChar.Manager.Exceptions;
|
||||||
|
|
||||||
|
public class LoginException(string message) : Exception(message)
|
||||||
{
|
{
|
||||||
public class LoginException(string message) : Exception(message)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
using OwnChar.Model;
|
using OwnChar.Model;
|
||||||
|
|
||||||
namespace OwnChar.Manager
|
namespace OwnChar.Manager;
|
||||||
|
|
||||||
|
public class GroupsManager(OwnCharManager manager)
|
||||||
{
|
{
|
||||||
public class GroupsManager(OwnCharManager manager)
|
|
||||||
{
|
|
||||||
public OwnCharManager Manager { get; } = manager;
|
public OwnCharManager Manager { get; } = manager;
|
||||||
|
|
||||||
public UserProfile? GetOwner(Group? group)
|
public UserProfile? GetOwner(Group? group)
|
||||||
@@ -17,5 +17,4 @@ namespace OwnChar.Manager
|
|||||||
ArgumentNullException.ThrowIfNull(group, nameof(group));
|
ArgumentNullException.ThrowIfNull(group, nameof(group));
|
||||||
return Manager.DataManager?.GetMembers(group);
|
return Manager.DataManager?.GetMembers(group);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ using OwnChar.Manager.Exceptions;
|
|||||||
using OwnChar.Model;
|
using OwnChar.Model;
|
||||||
using Pilz.Cryptography;
|
using Pilz.Cryptography;
|
||||||
|
|
||||||
namespace OwnChar.Manager
|
namespace OwnChar.Manager;
|
||||||
|
|
||||||
|
public class OwnCharManager
|
||||||
{
|
{
|
||||||
public class OwnCharManager
|
|
||||||
{
|
|
||||||
// User
|
// User
|
||||||
public bool IsLoggedIn => CurrentUser != null;
|
public bool IsLoggedIn => CurrentUser != null;
|
||||||
public UserAccount? CurrentUser { get; private set; }
|
public UserAccount? CurrentUser { get; private set; }
|
||||||
@@ -56,5 +56,4 @@ namespace OwnChar.Manager
|
|||||||
{
|
{
|
||||||
return DataManager?.Logout(CurrentUser) ?? true;
|
return DataManager?.Logout(CurrentUser) ?? true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
using OwnChar.Model;
|
using OwnChar.Model;
|
||||||
using Pilz.Cryptography;
|
using Pilz.Cryptography;
|
||||||
|
|
||||||
namespace OwnChar.Manager
|
namespace OwnChar.Manager;
|
||||||
|
|
||||||
|
public class UserManager(OwnCharManager manager)
|
||||||
{
|
{
|
||||||
public class UserManager(OwnCharManager manager)
|
|
||||||
{
|
|
||||||
public OwnCharManager Manager { get; } = manager;
|
public OwnCharManager Manager { get; } = manager;
|
||||||
|
|
||||||
public UserProfile? GetOwnUserProfile()
|
public UserProfile? GetOwnUserProfile()
|
||||||
@@ -26,5 +26,4 @@ namespace OwnChar.Manager
|
|||||||
ArgumentNullException.ThrowIfNull(account, nameof(account));
|
ArgumentNullException.ThrowIfNull(account, nameof(account));
|
||||||
return Manager.DataManager?.DeleteUserAccount(account) ?? false;
|
return Manager.DataManager?.DeleteUserAccount(account) ?? false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
namespace OwnChar.Model
|
namespace OwnChar.Model;
|
||||||
|
|
||||||
|
public abstract class Character : IOwnCharObject
|
||||||
{
|
{
|
||||||
public abstract class Character : IOwnCharObject
|
|
||||||
{
|
|
||||||
public virtual string? Name { get; set; }
|
public virtual string? Name { get; set; }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
namespace OwnChar.Model
|
namespace OwnChar.Model;
|
||||||
|
|
||||||
|
public abstract class Group : IOwnCharObject
|
||||||
{
|
{
|
||||||
public abstract class Group : IOwnCharObject
|
|
||||||
{
|
|
||||||
public virtual string? Name { get; set; }
|
public virtual string? Name { get; set; }
|
||||||
public virtual bool IsInternal { get; set; }
|
public virtual bool IsInternal { get; set; }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
namespace OwnChar.Model
|
namespace OwnChar.Model;
|
||||||
|
|
||||||
|
public interface IOwnCharObject
|
||||||
{
|
{
|
||||||
public interface IOwnCharObject
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
namespace OwnChar.Model
|
namespace OwnChar.Model;
|
||||||
|
|
||||||
|
public abstract class Property : IOwnCharObject
|
||||||
{
|
{
|
||||||
public abstract class Property : IOwnCharObject
|
|
||||||
{
|
|
||||||
public virtual string? Name { get; set; }
|
public virtual string? Name { get; set; }
|
||||||
public virtual object? Value { get; set; }
|
public virtual object? Value { get; set; }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
namespace OwnChar.Model
|
namespace OwnChar.Model;
|
||||||
|
|
||||||
|
public abstract class PropertyCategory : IOwnCharObject
|
||||||
{
|
{
|
||||||
public abstract class PropertyCategory : IOwnCharObject
|
|
||||||
{
|
|
||||||
public virtual string? Name { get; set; }
|
public virtual string? Name { get; set; }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
namespace OwnChar.Model
|
namespace OwnChar.Model;
|
||||||
|
|
||||||
|
public abstract class UserAccount : IOwnCharObject
|
||||||
{
|
{
|
||||||
public abstract class UserAccount : IOwnCharObject
|
|
||||||
{
|
|
||||||
public virtual string? Username { get; set; }
|
public virtual string? Username { get; set; }
|
||||||
public virtual string? Password { get; set; }
|
public virtual string? Password { get; set; }
|
||||||
public virtual string? Email { get; set; }
|
public virtual string? Email { get; set; }
|
||||||
public virtual UserType Type { get; set; }
|
public virtual UserType Type { get; set; }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
namespace OwnChar.Model
|
namespace OwnChar.Model;
|
||||||
|
|
||||||
|
public abstract class UserProfile : IOwnCharObject
|
||||||
{
|
{
|
||||||
public abstract class UserProfile : IOwnCharObject
|
|
||||||
{
|
|
||||||
public virtual string? Name { get; set; }
|
public virtual string? Name { get; set; }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
namespace OwnChar.Model
|
namespace OwnChar.Model;
|
||||||
|
|
||||||
|
public enum UserType
|
||||||
{
|
{
|
||||||
public enum UserType
|
|
||||||
{
|
|
||||||
Guest,
|
Guest,
|
||||||
User,
|
User,
|
||||||
Admin
|
Admin
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
using Pilz.Cryptography;
|
using Pilz.Cryptography;
|
||||||
|
|
||||||
namespace OwnChar
|
namespace OwnChar;
|
||||||
|
|
||||||
|
public static class Utils
|
||||||
{
|
{
|
||||||
public static class Utils
|
|
||||||
{
|
|
||||||
public static string HashPassword(string username, SecureString password)
|
public static string HashPassword(string username, SecureString password)
|
||||||
{
|
{
|
||||||
// TODO: Implement a good hasing algorythmus (like MD5) BEFORE going productive!
|
// TODO: Implement a good hasing algorythmus (like MD5) BEFORE going productive!
|
||||||
return (username + ":" + password).GetHashCode().ToString();
|
return (username + ":" + password).GetHashCode().ToString();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user