/// ------------------------------------------------------------------------------------ public ProjectContext(string projectSettingsPath, IContainer parentContainer) { var rootDirectoryPath = Path.GetDirectoryName(projectSettingsPath); BuildSubContainerForThisProject(rootDirectoryPath, parentContainer); Project = _scope.Resolve <Func <string, Project> >()(projectSettingsPath); SetContributorsListToSession(Project.SessionsFolder); var peopleRepoFactory = _scope.Resolve <ElementRepository <Person> .Factory>(); peopleRepoFactory(rootDirectoryPath, Person.kFolderName, _scope.Resolve <PersonFileType>()); var sessionRepoFactory = _scope.Resolve <ElementRepository <Session> .Factory>(); sessionRepoFactory(rootDirectoryPath, Session.kFolderName, _scope.Resolve <SessionFileType>()); // Create background operations _presetGatherer = _scope.Resolve <PresetGatherer>(); _autoCompleteValueGatherer = _scope.Resolve <AutoCompleteValueGatherer>(); _audioVideoDataGatherer = _scope.Resolve <AudioVideoDataGatherer>(); _fieldGatherer = _scope.Resolve <FieldGatherer>(); // Start background operations _presetGatherer.Start(); _autoCompleteValueGatherer.Start(); _audioVideoDataGatherer.Start(); _fieldGatherer.Start(); var view1 = _scope.Resolve <ProjectScreen>(); var view2 = _scope.Resolve <SessionsListScreen>(); var view3 = _scope.Resolve <PersonListScreen>(); var views = new ISayMoreView[] { view1, view2, view3 }; ProjectWindow = _scope.Resolve <ProjectWindow.Factory>()(projectSettingsPath, views); }