using DiscordChatExporter.Core.Services; using DiscordChatExporter.Gui.ViewModels; using GalaSoft.MvvmLight.Ioc; using Microsoft.Practices.ServiceLocation; namespace DiscordChatExporter.Gui { public class Container { public IErrorViewModel ErrorViewModel => Resolve(); public IExportDoneViewModel ExportDoneViewModel => Resolve(); public IExportSetupViewModel ExportSetupViewModel => Resolve(); public IMainViewModel MainViewModel => Resolve(); public ISettingsViewModel SettingsViewModel => Resolve(); private T Resolve(string key = null) { return ServiceLocator.Current.GetInstance(key); } public void Init() { ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); SimpleIoc.Default.Reset(); // Services SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); // Load settings Resolve().Load(); // View models SimpleIoc.Default.Register(true); SimpleIoc.Default.Register(true); SimpleIoc.Default.Register(true); SimpleIoc.Default.Register(true); SimpleIoc.Default.Register(true); } public void Cleanup() { // Save settings ServiceLocator.Current.GetInstance().Save(); } } }