public void OpenOrRestart(IDataContext context, TutorialId id) { var globalOptions = context.GetComponent <GlobalSettings>(); var titleString = TutorialXmlReader.ReadIntro(globalOptions.GetPath(id, PathType.WorkCopyContentFile)); var step = TutorialXmlReader.ReadCurrentStep(globalOptions.GetPath(id, PathType.WorkCopyContentFile)); var firstTime = step == 1; var titleWnd = new TitleWindow(titleString, firstTime); if (titleWnd.ShowDialog() != true) { return; } if (titleWnd.Restart) { SolutionCopyHelper.CopySolution(globalOptions.GetPath(id, PathType.BaseSolutionFolder), globalOptions.GetPath(id, PathType.WorkCopySolutionFolder)); GC.Collect(); TutorialXmlReader.WriteCurrentStep(globalOptions.GetPath(id, PathType.WorkCopyContentFile), "1"); VsCommunication.OpenVsSolution(globalOptions.GetPath(id, PathType.WorkCopySolutionFile)); } else { VsCommunication.OpenVsSolution(globalOptions.GetPath(id, PathType.WorkCopySolutionFile)); } }
public static void OpenTutorialSolution(SolutionStateTracker solutionStateTracker, int id) { var globalSettings = GlobalSettings.Instance; VsIntegration.CloseVsSolution(); solutionStateTracker.NotifyAgreeToRunTutorial(); SolutionCopyHelper.CleanUpDirectory(globalSettings.GetPath(id, PathType.WorkCopySolutionFolder)); SolutionCopyHelper.CopySolution(globalSettings.GetPath(id, PathType.BaseSolutionFolder), globalSettings.GetPath(id, PathType.WorkCopySolutionFolder)); VsIntegration.OpenVsSolution(globalSettings.GetPath(id, PathType.WorkCopySolutionFile)); }
public GlobalSettings([NotNull] Lifetime lifetime) { _commonTutorialPath = SolutionCopyHelper.GetTutorialsPath(); _commonWorkCopyPath = SolutionCopyHelper.GetWorkingCopyPath(); if (_commonTutorialPath == null || _commonWorkCopyPath == null) { throw new DirectoryNotFoundException("Unable to find the folder with sample solutions. Please reinstall the plugin"); } AvailableTutorials = new Dictionary <TutorialId, string> { { TutorialId.Tutorial1, GetPath(TutorialId.Tutorial1, PathType.WorkCopySolutionFile) } }; }