using Model;
using FakePersistance;
using DataPersistence;
using Managers;
namespace Views
{
public partial class App : Application
{
private Recipe currentRecipe { get; set; }
private static IDataManager _dataManager = new DataDefaultManager(new Stubs());
private static IRecipeManager _recipeManager = new RecipeDefaultManager(_dataManager);
private static IPasswordManager _passwordManager = new PasswordSHA256Manager();
private static IUserManager _userManager = new UserDefaultManager(_dataManager, _passwordManager);
///
/// Master manager - access to the Model.
///
public static MasterManager Master { get; private set; }
= new MasterManager(_dataManager, _recipeManager, _userManager);
///
/// Current selected recipe.
///
public Recipe CurrentRecipe
{
get => currentRecipe;
set
{
currentRecipe = value;
OnPropertyChanged(nameof(CurrentRecipe));
}
}
///
/// Get the current connected user.
///
public User? CurrentUser { get; private set; }
///
/// Get all the recipes loaded.
///
public RecipeCollection AllRecipes { get; set; }
public App()
{
CurrentUser = Master.User.CurrentConnected;
AllRecipes = Master.Recipe.GetAllRecipes();
CurrentRecipe = AllRecipes.First();
InitializeComponent();
UserAppTheme = AppTheme.Light;
MainPage = new Home();
}
}
}