add fandom & fix initializeing database

This commit is contained in:
2024-06-11 07:37:42 +02:00
parent 6fd51f4b7a
commit 60b38e5434
7 changed files with 27 additions and 5 deletions

View File

@@ -6,6 +6,7 @@ public interface IDataProvider
{ {
// General // General
abstract bool IsInitialized(); abstract bool IsInitialized();
abstract void SetInitialized();
// Model // Model
abstract T? Create<T>() where T : class, IOwnCharObject; abstract T? Create<T>() where T : class, IOwnCharObject;

View File

@@ -2,12 +2,18 @@
namespace OwnChar.Data.Managers; namespace OwnChar.Data.Managers;
public class DefaultDataManager(IDataProvider dataProvider) : IDataManager public class DefaultDataManager : IDataManager
{ {
private const string defaultUsername = "admin"; private const string defaultUsername = "admin";
private const string defaultPassword = "admin"; private const string defaultPassword = "admin";
public IDataProvider DataProvider { get; } = dataProvider; public IDataProvider DataProvider { get; }
public DefaultDataManager(IDataProvider dataProvider)
{
DataProvider = dataProvider;
Initialize(false);
}
public IEnumerable<UserProfile>? GetMembers(Group group) public IEnumerable<UserProfile>? GetMembers(Group group)
{ {
@@ -37,9 +43,15 @@ public class DefaultDataManager(IDataProvider dataProvider) : IDataManager
public bool Initialize(bool force) public bool Initialize(bool force)
{ {
var result = false;
if (force || !DataProvider.IsInitialized()) if (force || !DataProvider.IsInitialized())
return CreateUserAccount(defaultUsername, Utils.HashPassword(defaultUsername, defaultPassword)) != null; {
return true; result = CreateUserAccount(defaultUsername, Utils.HashPassword(defaultUsername, defaultPassword)) != null;
DataProvider.SetInitialized();
}
return result;
} }
public UserAccount? CreateUserAccount(string username, string password) public UserAccount? CreateUserAccount(string username, string password)

View File

@@ -4,6 +4,7 @@ namespace OwnChar.Data.Providers.JsonFile;
public class JsonFile public class JsonFile
{ {
public bool IsInitialized { get; set; }
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; } = [];

View File

@@ -87,7 +87,12 @@ public class JsonFileDataProvider : IDataProvider
public bool IsInitialized() public bool IsInitialized()
{ {
return JsonFile.UserAccounts.Count != 0; return JsonFile.IsInitialized;
}
public void SetInitialized()
{
JsonFile.IsInitialized = true;
} }
public bool Delete<T>(T obj) where T : class, IOwnCharObject public bool Delete<T>(T obj) where T : class, IOwnCharObject

View File

@@ -44,6 +44,7 @@ public class OwnCharManager
username = username.Trim().ToLower(); username = username.Trim().ToLower();
CurrentUser = proxy.Login(username, Utils.HashPassword(username, password)); CurrentUser = proxy.Login(username, Utils.HashPassword(username, password));
DataManager = proxy;
return IsLoggedIn; return IsLoggedIn;
} }

View File

@@ -3,4 +3,5 @@
public abstract class Character : IOwnCharObject public abstract class Character : IOwnCharObject
{ {
public virtual string? Name { get; set; } public virtual string? Name { get; set; }
public virtual string? Fandom { get; set; }
} }

View File

@@ -3,5 +3,6 @@
public abstract class Group : IOwnCharObject public abstract class Group : IOwnCharObject
{ {
public virtual string? Name { get; set; } public virtual string? Name { get; set; }
public virtual string? Fandom { get; set; }
public virtual bool IsInternal { get; set; } public virtual bool IsInternal { get; set; }
} }