Esempio n. 1
0
        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();
 }