using Model;
namespace Managers
{
///
/// Define the manager of the data. This is where all the data are put, and where we call the loading and the saving of them.
///
public class DataDefaultManager : IDataManager
{
#region Attributes & Properties
public IDataSerializer Serializer { get; set; }
public Dictionary> Data { get; private set; }
#endregion
#region Constructors
///
/// Constructor of the DataDefaultManager class. Take a IDataManager that will provide methods for the serialisation of the data.
///
/// The data manager that know how to serialize a file.
public DataDefaultManager(IDataSerializer dataManager)
{
Serializer = dataManager;
Data = Serializer.Load();
}
#endregion
#region Methods
public void LoadData()
=> Data = Serializer.Load();
public void SaveData()
=> Serializer.Save(Data);
public void Import(string pathOfTheFile)
where T : class
{
KeyValuePair import = Serializer.Import(pathOfTheFile);
Data[import.Key].Add(import.Value);
}
public void Export(T obj, string pathToExport)
where T : class
=> Serializer.Export(obj, pathToExport);
public ICollection GetFromData() where T : class
=> new List(Data[typeof(T).Name].Cast());
#endregion
}
}