public CookiecutterContainerPage(IServiceProvider provider, Redirector outputWindow, ICookiecutterTelemetry telemetry, IGitClient gitClient, Uri feedUrl, Action<string> openFolder, IProjectSystemClient projectSystemClient, Action updateCommandUI) { _updateCommandUI = updateCommandUI; _checkForUpdatesTimer = new DispatcherTimer(); _checkForUpdatesTimer.Tick += new EventHandler(CheckForUpdateTimer_Tick); var gitHubClient = new GitHubClient(); ViewModel = new CookiecutterViewModel( CookiecutterClientProvider.Create(provider, outputWindow), gitHubClient, gitClient, telemetry, outputWindow, new LocalTemplateSource(CookiecutterViewModel.DefaultInstalledFolderPath, gitClient), new FeedTemplateSource(feedUrl), new GitHubTemplateSource(gitHubClient), openFolder, projectSystemClient ); ViewModel.UserConfigFilePath = CookiecutterViewModel.GetUserConfigPath(); ViewModel.OutputFolderPath = string.Empty; // leaving this empty for now, initialize on context creation ViewModel.ContextLoaded += ViewModel_ContextLoaded; ViewModel.HomeClicked += ViewModel_HomeClicked; _searchPage = new CookiecutterSearchPage { DataContext = ViewModel }; _optionsPage = new CookiecutterOptionsPage { DataContext = ViewModel }; var pages = new List<Page>(); pages.Add(_searchPage); pages.Add(_optionsPage); _pageSequence = new CollectionViewSource { Source = new ObservableCollection<Page>(pages) }; PageCount = _pageSequence.View.OfType<object>().Count(); PageSequence = _pageSequence.View; PageSequence.MoveCurrentToFirst(); DataContext = this; InitializeComponent(); _searchPage.SelectedTemplateChanged += SearchPage_SelectedTemplateChanged; }
public CookiecutterViewModel(ICookiecutterClient cutter, IGitHubClient githubClient, IGitClient gitClient, ICookiecutterTelemetry telemetry, Redirector outputWindow, ILocalTemplateSource installedTemplateSource, ITemplateSource feedTemplateSource, ITemplateSource gitHubTemplateSource, Action <string, string> executeCommand, IProjectSystemClient projectSystemClient) { _cutterClient = cutter; _githubClient = githubClient; _gitClient = gitClient; _telemetry = telemetry; _outputWindow = outputWindow; _recommendedSource = feedTemplateSource; _installedSource = installedTemplateSource; _githubSource = gitHubTemplateSource; _executeCommand = executeCommand; _projectSystemClient = projectSystemClient; Installed = new CategorizedViewModel(Strings.TemplateCategoryInstalled); Recommended = new CategorizedViewModel(Strings.TemplateCategoryRecommended); GitHub = new CategorizedViewModel(Strings.TemplateCategoryGitHub); Custom = new CategorizedViewModel(Strings.TemplateCategoryCustom); }
public CookiecutterContainerPage(IServiceProvider provider, Redirector outputWindow, ICookiecutterTelemetry telemetry, IGitClient gitClient, Uri feedUrl, Action <string, string> executeCommand, IProjectSystemClient projectSystemClient, Action updateCommandUI) { _updateCommandUI = updateCommandUI; _checkForUpdatesTimer = new DispatcherTimer(); _checkForUpdatesTimer.Tick += new EventHandler(CheckForUpdateTimer_Tick); var gitHubClient = new GitHubClient(); ViewModel = new CookiecutterViewModel( CookiecutterClientProvider.Create(provider, outputWindow), gitHubClient, gitClient, telemetry, outputWindow, new LocalTemplateSource(CookiecutterViewModel.DefaultInstalledFolderPath, gitClient), new FeedTemplateSource(feedUrl), new GitHubTemplateSource(gitHubClient), executeCommand, projectSystemClient ); ViewModel.UserConfigFilePath = CookiecutterViewModel.GetUserConfigPath(); ViewModel.OutputFolderPath = string.Empty; // leaving this empty for now, initialize on context creation ViewModel.ContextLoaded += ViewModel_ContextLoaded; ViewModel.HomeClicked += ViewModel_HomeClicked; _searchPage = new CookiecutterSearchPage { DataContext = ViewModel }; _optionsPage = new CookiecutterOptionsPage { DataContext = ViewModel }; var pages = new List <Page>(); pages.Add(_searchPage); pages.Add(_optionsPage); _pageSequence = new CollectionViewSource { Source = new ObservableCollection <Page>(pages) }; PageCount = _pageSequence.View.OfType <object>().Count(); PageSequence = _pageSequence.View; PageSequence.MoveCurrentToFirst(); DataContext = this; InitializeComponent(); _searchPage.SelectedTemplateChanged += SearchPage_SelectedTemplateChanged; }
public CookiecutterViewModel(ICookiecutterClient cutter, IGitHubClient githubClient, IGitClient gitClient, ICookiecutterTelemetry telemetry, Redirector outputWindow, ILocalTemplateSource installedTemplateSource, ITemplateSource feedTemplateSource, ITemplateSource gitHubTemplateSource, Action<string> openFolder, IProjectSystemClient projectSystemClient) { _cutterClient = cutter; _githubClient = githubClient; _gitClient = gitClient; _telemetry = telemetry; _outputWindow = outputWindow; _recommendedSource = feedTemplateSource; _installedSource = installedTemplateSource; _githubSource = gitHubTemplateSource; _openFolder = openFolder; _projectSystemClient = projectSystemClient; Installed = new CategorizedViewModel(Strings.TemplateCategoryInstalled); Recommended = new CategorizedViewModel(Strings.TemplateCategoryRecommended); GitHub = new CategorizedViewModel(Strings.TemplateCategoryGitHub); Custom = new CategorizedViewModel(Strings.TemplateCategoryCustom); }