public ModificationImportController(IPofSerializer pofSerializer, string repositoriesDirectory, TemporaryFileService temporaryFileService, ExeggutorService exeggutorService, ModificationComponentFactory modificationComponentFactory, IFileSystemProxy fileSystemProxy, RiotSolutionLoader riotSolutionLoader, ModificationImportViewModelFactory modificationImportViewModelFactory, ObservableCollection<ModificationViewModel> modificationViewModels, ModificationLoader modificationLoader, LeagueBuildUtilities leagueBuildUtilities) { this.pofSerializer = pofSerializer; this.repositoriesDirectory = repositoriesDirectory; this.temporaryFileService = temporaryFileService; this.exeggutorService = exeggutorService; this.modificationComponentFactory = modificationComponentFactory; this.fileSystemProxy = fileSystemProxy; this.riotSolutionLoader = riotSolutionLoader; this.modificationImportViewModelFactory = modificationImportViewModelFactory; this.modificationViewModels = modificationViewModels; this.modificationLoader = modificationLoader; this.leagueBuildUtilities = leagueBuildUtilities; }
private void UserInterfaceThreadStart() { var clientConfiguration = ryu.Get<IClientConfiguration>(); var fileSystemProxy = ryu.Get<IFileSystemProxy>(); var driveNodeFactory = new DriveNodeFactory(ryu.Get<IStreamFactory>()); var pofContext = ryu.Get<IPofContext>(); var pofSerializer = ryu.Get<IPofSerializer>(); var temporaryFileService = ryu.Get<ServiceClient>().GetService<TemporaryFileService>(); var exeggutorService = ryu.Get<ServiceClient>().GetService<ExeggutorService>(); var riotSolutionLoader = ryu.Get<RiotSolutionLoader>(); var modificationLoader = ryu.Get<ModificationLoader>(); var leagueBuildUtilities = ryu.Get<LeagueBuildUtilities>(); application = Application.Current ?? new Application(); var dispatcher = application.Dispatcher; var window = new MainWindow(); var repositoriesDirectory = Path.Combine(clientConfiguration.UserDataDirectoryPath, kRepositoryDirectoryName); var modificationImportViewModelFactory = new ModificationImportViewModelFactory(fileSystemProxy, driveNodeFactory); ModificationComponentFactory modificationComponentFactory = new ModificationComponentFactory(fileSystemProxy, pofContext, new SlotSourceFactoryImpl(), pofSerializer); ObservableCollection<ModificationViewModel> modificationViewModels = new ObservableCollection<ModificationViewModel>(); var rootViewModelCommandFactory = new ModificationImportController(pofSerializer, repositoriesDirectory, temporaryFileService, exeggutorService, modificationComponentFactory, fileSystemProxy, riotSolutionLoader, modificationImportViewModelFactory, modificationViewModels, modificationLoader, leagueBuildUtilities); var modificationListingSynchronizer = new ModificationListingSynchronizer(pofSerializer, fileSystemProxy, clientConfiguration, temporaryFileService, exeggutorService, modificationLoader, modificationViewModels, leagueBuildUtilities); modificationListingSynchronizer.Initialize(); var rootViewModel = new RootViewModel(rootViewModelCommandFactory, window, modificationViewModels); window.DataContext = rootViewModel; application.Run(window); host?.Shutdown(ShutdownReason.None); }