add fandom & fix initializeing database
This commit is contained in:
@@ -6,6 +6,7 @@ public interface IDataProvider
|
||||
{
|
||||
// General
|
||||
abstract bool IsInitialized();
|
||||
abstract void SetInitialized();
|
||||
|
||||
// Model
|
||||
abstract T? Create<T>() where T : class, IOwnCharObject;
|
||||
|
||||
@@ -2,12 +2,18 @@
|
||||
|
||||
namespace OwnChar.Data.Managers;
|
||||
|
||||
public class DefaultDataManager(IDataProvider dataProvider) : IDataManager
|
||||
public class DefaultDataManager : IDataManager
|
||||
{
|
||||
private const string defaultUsername = "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)
|
||||
{
|
||||
@@ -37,9 +43,15 @@ public class DefaultDataManager(IDataProvider dataProvider) : IDataManager
|
||||
|
||||
public bool Initialize(bool force)
|
||||
{
|
||||
var result = false;
|
||||
|
||||
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)
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace OwnChar.Data.Providers.JsonFile;
|
||||
|
||||
public class JsonFile
|
||||
{
|
||||
public bool IsInitialized { get; set; }
|
||||
public List<JsonUserAccount> UserAccounts { get; } = [];
|
||||
public List<JsonCharacter> Characters { get; } = [];
|
||||
public List<JsonGroup> Groups { get; } = [];
|
||||
|
||||
@@ -87,7 +87,12 @@ public class JsonFileDataProvider : IDataProvider
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user