public static ProgressTrackerManager Load(IProgressStorage progressStorage) { var serialized = progressStorage.Load(); var progressTrackers = JsonSerializer.Deserialize <List <ProgressTracker> >(serialized); var keyValuePairs = progressTrackers.Select(pt => new KeyValuePair <int, ProgressTracker>(pt.Id, pt)); var dictionary = new Dictionary <int, ProgressTracker>(keyValuePairs); return(new ProgressTrackerManager(dictionary)); }
public QuestionAccessor( IOptions <DirectoryOptions> options, MediaInfoLocalFileProvider mediaInfoLocalFileProvider, IProgressStorage progressStorage) { _domainFacade = new DomainFacade( options.Value.QuestionFullPath, mediaInfoLocalFileProvider, progressStorage ); }
public DomainFacade(string questionFile, MediaInfoBaseProvider mediaInfoBaseProvider, IProgressStorage progressStorage) { _progressStorage = progressStorage; _kernel = new StandardKernel(); _kernel.Bind <MediaInfoBaseProvider>() .ToConstant(mediaInfoBaseProvider); _progressTrackerManager = _progressStorage.HasSave ? ProgressTrackerManager.Load(_progressStorage) : _kernel.Get <ProgressTrackerManager>(); _kernel.Bind <ProgressTrackerManager>() .ToConstant(_progressTrackerManager); _questionManager = _kernel.Get <QuestionManager>(); _questionManager.LoadQuestionsFromFile(questionFile); }
public void Save(IProgressStorage progressStorage) { var serialized = JsonSerializer.Serialize(_progressTrackers.Values.ToArray()); progressStorage.Save(serialized); }