public CookiecutterControl(Redirector outputWindow, ICookiecutterTelemetry telemetry, Uri feedUrl, Action <string> openFolder, Action updateCommandUI) { _updateCommandUI = updateCommandUI; _checkForUpdatesTimer = new DispatcherTimer(); _checkForUpdatesTimer.Tick += new EventHandler(CheckForUpdateTimer_Tick); string gitExeFilePath = GitClient.RecommendedGitFilePath; var gitClient = new GitClient(gitExeFilePath, outputWindow); var gitHubClient = new GitHubClient(); ViewModel = new CookiecutterViewModel( CookiecutterClientProvider.Create(outputWindow), gitHubClient, gitClient, telemetry, outputWindow, new LocalTemplateSource(CookiecutterViewModel.DefaultInstalledFolderPath, gitClient), new FeedTemplateSource(feedUrl), new GitHubTemplateSource(gitHubClient), openFolder ); ViewModel.UserConfigFilePath = CookiecutterViewModel.GetUserConfigPath(); ViewModel.OutputFolderPath = string.Empty; // leaving this empty for now, force user to enter one 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 CookiecutterControl(Redirector outputWindow, ICookiecutterTelemetry telemetry, Uri feedUrl, Action<string> openFolder, Action updateCommandUI) { _updateCommandUI = updateCommandUI; _checkForUpdatesTimer = new DispatcherTimer(); _checkForUpdatesTimer.Tick += new EventHandler(CheckForUpdateTimer_Tick); string gitExeFilePath = GitClient.RecommendedGitFilePath; var gitClient = new GitClient(gitExeFilePath, outputWindow); var gitHubClient = new GitHubClient(); ViewModel = new CookiecutterViewModel( CookiecutterClientProvider.Create(outputWindow), gitHubClient, gitClient, telemetry, outputWindow, new LocalTemplateSource(CookiecutterViewModel.DefaultInstalledFolderPath, gitClient), new FeedTemplateSource(feedUrl), new GitHubTemplateSource(gitHubClient), openFolder ); ViewModel.UserConfigFilePath = CookiecutterViewModel.GetUserConfigPath(); ViewModel.OutputFolderPath = string.Empty; // leaving this empty for now, force user to enter one 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; }