add fandom & fix initializeing database
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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; } = [];
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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; }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user