You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.8 KiB
53 lines
1.8 KiB
using ConsoleApp;
|
|
using Model;
|
|
using DataPersistence;
|
|
using FakePersistance;
|
|
using Managers;
|
|
|
|
|
|
namespace ConsoleApp;
|
|
|
|
public static class Program
|
|
{
|
|
public static void Main(string[] args)
|
|
{
|
|
Console.WriteLine("Hello, World!\n\n");
|
|
|
|
string path = ""; // - path to the save file
|
|
string strategy = "xml"; // - strategy is 'xml' or 'json' (/!\ this is case sensitive)
|
|
|
|
// Initialize the data serializer
|
|
IDataSerializer dataSerializer = (strategy == "xml") ?
|
|
new DataContractXML(path)
|
|
: new DataContractJSON(path);
|
|
|
|
// Initialize the data manager
|
|
IDataManager dataManager = (!File.Exists(Path.Combine(path, $"data.{strategy}"))) ?
|
|
new DataDefaultManager(new Stubs())
|
|
: new DataDefaultManager(dataSerializer);
|
|
|
|
// Initialize the other managers
|
|
IRecipeManager recipeManager = new RecipeDefaultManager(dataManager);
|
|
IPasswordManager passwordManager = new PasswordSHA256Manager();
|
|
IUserManager userManager = new UserDefaultManager(dataManager, passwordManager);
|
|
|
|
// Initialize the master manager
|
|
MasterManager Master = new MasterManager(dataManager, recipeManager, userManager);
|
|
Master.Setup();
|
|
|
|
MenuManager menuMgr = new MenuManager(Master);
|
|
menuMgr.Loop();
|
|
|
|
// Change the data serializer if the one in place is 'Stubs'
|
|
if (Master.Data.Serializer.GetType() == typeof(Stubs))
|
|
{
|
|
var data = Master.Data.Data;
|
|
dataManager = new DataDefaultManager(dataSerializer, data);
|
|
Master = new MasterManager(dataManager, recipeManager, userManager);
|
|
}
|
|
|
|
// Save data.
|
|
Console.Write("[ --SAVE-- ]:\t"); Master.Data.SaveData(); Console.WriteLine("Done.");
|
|
}
|
|
}
|