some work
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using OwnChar.Data;
|
||||
using OwnChar.Manager.Exceptions;
|
||||
using OwnChar.Model;
|
||||
using Pilz.Cryptography;
|
||||
|
||||
@@ -7,32 +8,50 @@ namespace OwnChar.Manager
|
||||
public class OwnCharManager
|
||||
{
|
||||
// User
|
||||
public bool IsLoggedIn { get; set; }
|
||||
public UserAccount? CurrentUser { get; set; }
|
||||
public bool IsLoggedIn => DataProvider != null && DataProvider.IsLoggedIn;
|
||||
public UserAccount? CurrentUser => DataProvider?.CurrentUserAccount;
|
||||
|
||||
// Data Provider
|
||||
public IDataProvider DataProvider { get; set; }
|
||||
public IDataProvider? DataProvider { get; set; }
|
||||
|
||||
// Manager
|
||||
public UserManager Users { get; }
|
||||
public GroupsManager Groups { get; }
|
||||
public CharacterManager Characters { get; }
|
||||
|
||||
public OwnCharManager(IDataProvider dataProvider)
|
||||
public OwnCharManager()
|
||||
{
|
||||
DataProvider = dataProvider;
|
||||
Users = new(this);
|
||||
Groups = new(this);
|
||||
Characters = new(this);
|
||||
}
|
||||
|
||||
private void CheckLogin()
|
||||
{
|
||||
if (!IsLoggedIn)
|
||||
throw new LoginException("You are already logged in!");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tries to login on the server.
|
||||
/// Tries to login on the given data provider.
|
||||
/// </summary>
|
||||
/// <returns>Returns <see cref="true"/> if the login was successfull and <see cref="false"/> if not.</returns>
|
||||
public bool Login(string username, SecureString password)
|
||||
public bool Login(IDataProvider? dataProvider, string username, SecureString password)
|
||||
{
|
||||
return IsLoggedIn = true; // TODO: Change `true` to the real check.
|
||||
CheckLogin();
|
||||
ArgumentNullException.ThrowIfNull(dataProvider);
|
||||
return dataProvider.Login(username, password) != null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Closes the session on the current data provider.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool Logout()
|
||||
{
|
||||
if (DataProvider != null)
|
||||
return DataProvider.Logout();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user