private void ConfigureContainer() { // lets consider ServiceLocator is an anti-pattern // TODO use naming convention registering Container.RegisterInstance <IConfigProvider>(new ConfigProvider(AppSettings.Default, true)); Container.RegisterTypeAsSingleton <IJsonManager, JsonManager>(); Container.RegisterTypeAsSingleton <IAutoKeyboardInputHelper, AutoKeyboardInputHelper>(); Container.RegisterTypeAsSingleton <IApplicationUpdater, ApplicationUpdater.ApplicationUpdater>(); Container.RegisterTypeAsSingleton <IInvoicesXmlManager, InvoicesXmlManager>(); Container.RegisterTypeAsSingleton <ICsvLoader, CsvLoader>(); Container.RegisterTypeAsSingleton <IAutocompleteDataLoader, AutocompleteDataLoader>(); Container.RegisterTypeAsSingleton <ICurrencyConverter, CurrencyConverter>(); Container.RegisterTypeAsSingleton <IInvoiceConverter, InvoiceConverter>(); Container.RegisterTypeAsSingleton <ITransactionsReader, TransactionsReader>(); Container.RegisterTypeAsSingleton <IGpcGenerator, GpcGenerator>(); Container.RegisterTypeAsSingleton <IFileOperationService, FileOperationsService>(); Container.RegisterTypeAsSingleton <IMainWindowViewModel, MainWindowViewModel>(); Container.RegisterTypeAsSingleton <IDialogService, DialogService>(); Container.RegisterType <IManualChangeWindowViewModel, ManualChangeWindowViewModel>(); var autocompleteDataLoader = Container.Resolve <IAutocompleteDataLoader>(); _autocompleteData = autocompleteDataLoader.LoadSettings(); Container.RegisterInstance(_autocompleteData); _keyboardInputHelper = Container.Resolve <IAutoKeyboardInputHelper>(); // SHOULD BE HERE, otherwise will not get instantiated _appUpdater = Container.Resolve <IApplicationUpdater>(); _appUpdater.CheckUpdate(); Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; // TODO avoid using }
public AskUpdateView( ILogger <AskUpdateView> logger, IViewManager viewManager, ILiveUpdateableOptions <ApplicationConfiguration> liveOptions, IPrivilegeManager privilegeManager, IApplicationUpdater applicationUpdater) { this.logger = logger.ThrowIfNull(nameof(logger)); this.viewManager = viewManager.ThrowIfNull(nameof(viewManager)); this.liveOptions = liveOptions.ThrowIfNull(nameof(liveOptions)); this.privilegeManager = privilegeManager.ThrowIfNull(nameof(privilegeManager)); this.applicationUpdater = applicationUpdater.ThrowIfNull(nameof(applicationUpdater)); this.InitializeComponent(); }