public ModuleController(Lazy<ShellService> shellService, IEnvironmentService environmentService, ISettingsProvider settingsProvider, FileController fileController, WorkspaceController workspaceController, IFileService fileService, Lazy<ShellViewModel> shellViewModel, ExportFactory<CodeEditorViewModel> codeEditorViewModelFactory, ExportFactory<InfoViewModel> infoViewModelFactory) { this.shellService = shellService; this.environmentService = environmentService; this.settingsProvider = settingsProvider; this.fileController = fileController; this.workspaceController = workspaceController; this.shellViewModel = shellViewModel; this.codeEditorViewModelFactory = codeEditorViewModelFactory; this.infoViewModelFactory = infoViewModelFactory; this.infoCommand = new DelegateCommand(ShowInfo); this.documentDataModels = new SynchronizingCollection<DocumentDataModel, DocumentFile>(fileService.DocumentFiles, CreateDocumentDataModel); }