public bool MoveToFirstPage(SolutionTemplate template, ProjectCreateParameters parameters)
        {
            Reset();

            if (!template.HasWizard)
            {
                return(false);
            }

            CurrentWizard = GetWizard(template.Wizard);
            if (CurrentWizard == null)
            {
                LoggingService.LogError("Unable to find project template wizard '{0}'.", template.Wizard);
                return(false);
            }

            CurrentWizard.Parameters = parameters;
            CurrentWizard.UpdateParameters(template);
            IsFirstPage       = true;
            CurrentPageNumber = 1;

            if (CurrentWizard.TotalPages == 0)
            {
                IsLastPage = true;
                return(false);
            }

            CurrentWizardPage = GetCurrentWizardPage();

            IsLastPage = CurrentWizard.TotalPages == 1;

            return(true);
        }
        WizardPage GetCurrentWizardPage()
        {
            if (cachedWizardPages.Count >= CurrentPageNumber)
            {
                return(cachedWizardPages [CurrentPageNumber - 1]);
            }
            WizardPage page = CurrentWizard.GetPage(CurrentPageNumber);

            if (page != null)
            {
                cachedWizardPages.Add(page);
            }
            return(page);
        }
        public IEnumerable <ProjectConfigurationControl> GetFinalPageControls()
        {
            if (cachedFinalPageControls != null)
            {
                return(cachedFinalPageControls);
            }

            if (HasWizard)
            {
                cachedFinalPageControls = CurrentWizard.GetFinalPageControls().ToList();
                return(cachedFinalPageControls);
            }

            return(Enumerable.Empty <ProjectConfigurationControl> ());
        }
 public void BeforeProjectIsCreated()
 {
     CurrentWizard.ConfigureWizard();
 }