Compare commits

...

1 Commits

Author SHA1 Message Date
6fd51f4b7a code cleanup 2024-06-11 06:59:34 +02:00
26 changed files with 444 additions and 472 deletions

View File

@@ -1,9 +1,9 @@
using OwnChar.Model;
namespace OwnChar.Data
namespace OwnChar.Data;
public interface IDataManager
{
public interface IDataManager
{
// Login
abstract UserAccount? Login(string username, string password);
abstract bool Logout(UserAccount? account);
@@ -16,5 +16,4 @@ namespace OwnChar.Data
// Group management
abstract UserProfile? GetOwner(Group group);
abstract IEnumerable<UserProfile>? GetMembers(Group group);
}
}

View File

@@ -1,9 +1,9 @@
using OwnChar.Model;
namespace OwnChar.Data
namespace OwnChar.Data;
public interface IDataProvider
{
public interface IDataProvider
{
// General
abstract bool IsInitialized();
@@ -25,5 +25,4 @@ namespace OwnChar.Data
abstract IEnumerable<UserProfile>? GetGroupMembers(Group group);
abstract UserProfile? GetOwner(Group group);
abstract UserProfile? GetOwner(Character character);
}
}

View File

@@ -1,6 +1,5 @@
namespace OwnChar.Data.Managers
namespace OwnChar.Data.Managers;
public class ClientDataManager
{
public class ClientDataManager
{
}
}

View File

@@ -1,9 +1,9 @@
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 defaultPassword = "admin";
@@ -75,5 +75,4 @@ namespace OwnChar.Data.Managers
DataProvider.Delete(account);
return true;
}
}
}

View File

@@ -1,12 +1,10 @@
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<JsonCharacter> Characters { get; } = [];
public List<JsonGroup> Groups { get; } = [];
}
}

View File

@@ -1,12 +1,11 @@
using Newtonsoft.Json;
using OwnChar.Data.Providers.JsonFile.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 string JsonFilePath { get; protected set; }
@@ -77,7 +76,7 @@ namespace OwnChar.Data.Providers.JsonFile
if (!JsonFile.Groups.Contains(group))
JsonFile.Groups.Add(group);
}
else if(obj is JsonUserAccount account)
else if (obj is JsonUserAccount account)
{
if (!JsonFile.UserAccounts.Contains(account))
JsonFile.UserAccounts.Add(account);
@@ -217,5 +216,4 @@ namespace OwnChar.Data.Providers.JsonFile
return jcharacter.Owner;
return null;
}
}
}

View File

@@ -1,11 +1,10 @@
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 List<JsonProp> Properties { get; } = [];
public virtual List<JsonPropCat> PropertyCategories { get; } = [];
}
}

View File

@@ -1,11 +1,10 @@
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 List<JsonUserProfile> Members { get; } = [];
public virtual List<JsonCharacter> Characters { get; } = [];
}
}

View File

@@ -1,9 +1,8 @@
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;
}
}

View File

@@ -1,8 +1,7 @@
using OwnChar.Model;
namespace OwnChar.Data.Providers.JsonFile.Model
namespace OwnChar.Data.Providers.JsonFile.Model;
public class JsonPropCat : PropertyCategory
{
public class JsonPropCat : PropertyCategory
{
}
}

View File

@@ -2,13 +2,12 @@
using Newtonsoft.Json.Converters;
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; }
[JsonConverter(typeof(StringEnumConverter))]
public override UserType Type { get => base.Type; set => base.Type = value; }
}
}

View File

@@ -1,8 +1,7 @@
using OwnChar.Model;
namespace OwnChar.Data.Providers.JsonFile.Model
namespace OwnChar.Data.Providers.JsonFile.Model;
public class JsonUserProfile : UserProfile
{
public class JsonUserProfile : UserProfile
{
}
}

View File

@@ -1,9 +1,9 @@
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 IEnumerable<Character>? GetCharacters(Group? group)
@@ -15,5 +15,4 @@ namespace OwnChar.Manager
{
throw new NotImplementedException();
}
}
}

View File

@@ -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)
{
}
}

View File

@@ -1,9 +1,9 @@
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 UserProfile? GetOwner(Group? group)
@@ -17,5 +17,4 @@ namespace OwnChar.Manager
ArgumentNullException.ThrowIfNull(group, nameof(group));
return Manager.DataManager?.GetMembers(group);
}
}
}

View File

@@ -3,10 +3,10 @@ using OwnChar.Manager.Exceptions;
using OwnChar.Model;
using Pilz.Cryptography;
namespace OwnChar.Manager
namespace OwnChar.Manager;
public class OwnCharManager
{
public class OwnCharManager
{
// User
public bool IsLoggedIn => CurrentUser != null;
public UserAccount? CurrentUser { get; private set; }
@@ -56,5 +56,4 @@ namespace OwnChar.Manager
{
return DataManager?.Logout(CurrentUser) ?? true;
}
}
}

View File

@@ -1,10 +1,10 @@
using OwnChar.Model;
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 UserProfile? GetOwnUserProfile()
@@ -26,5 +26,4 @@ namespace OwnChar.Manager
ArgumentNullException.ThrowIfNull(account, nameof(account));
return Manager.DataManager?.DeleteUserAccount(account) ?? false;
}
}
}

View File

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

View File

@@ -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 bool IsInternal { get; set; }
}
}

View File

@@ -1,6 +1,5 @@
namespace OwnChar.Model
namespace OwnChar.Model;
public interface IOwnCharObject
{
public interface IOwnCharObject
{
}
}

View File

@@ -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 object? Value { get; set; }
}
}

View File

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

View File

@@ -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? Password { get; set; }
public virtual string? Email { get; set; }
public virtual UserType Type { get; set; }
}
}

View File

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

View File

@@ -1,9 +1,8 @@
namespace OwnChar.Model
namespace OwnChar.Model;
public enum UserType
{
public enum UserType
{
Guest,
User,
Admin
}
}

View File

@@ -1,13 +1,12 @@
using Pilz.Cryptography;
namespace OwnChar
namespace OwnChar;
public static class Utils
{
public static class Utils
{
public static string HashPassword(string username, SecureString password)
{
// TODO: Implement a good hasing algorythmus (like MD5) BEFORE going productive!
return (username + ":" + password).GetHashCode().ToString();
}
}
}