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;
		}
		void CreateProvider ()
		{
			template = new SolutionTemplate ("id", "name", "icon");
			template.Wizard = "wizard-id";
			parameters = new ProjectCreateParameters ();
			wizard = new TestableTemplateWizard ();
			provider = new TestableTemplateWizardProvider ();
			wizard = provider.Wizard;
		}
 public ProjectCreateInformation(ProjectCreateInformation projectCreateInformation)
 {
     projectName         = projectCreateInformation.ProjectName;
     solutionName        = projectCreateInformation.SolutionName;
     solutionPath        = projectCreateInformation.SolutionPath;
     projectBasePath     = projectCreateInformation.ProjectBasePath;
     ParentFolder        = projectCreateInformation.ParentFolder;
     ActiveConfiguration = projectCreateInformation.ActiveConfiguration;
     Parameters          = projectCreateInformation.Parameters;
 }
		public ProjectCreateInformation (ProjectCreateInformation projectCreateInformation)
		{
			projectName = projectCreateInformation.ProjectName;
			solutionName = projectCreateInformation.SolutionName;
			solutionPath = projectCreateInformation.SolutionPath;
			projectBasePath = projectCreateInformation.ProjectBasePath;
			ParentFolder = projectCreateInformation.ParentFolder;
			ActiveConfiguration = projectCreateInformation.ActiveConfiguration;
			Parameters = projectCreateInformation.Parameters;
		}
		public NewProjectConfiguration ()
		{
			SolutionName = String.Empty;
			Location = String.Empty;

			CreateProjectDirectoryInsideSolutionDirectory = true;

			CreateGitIgnoreFile = true;
			UseGit = false;

			Parameters = new ProjectCreateParameters ();
		}
		public bool IsExcluded (ProjectCreateParameters projectCreateParameters)
		{
			if (String.IsNullOrEmpty (condition)) {
				return false;
			}

			if (templateParameters == null) {
				templateParameters = TemplateParameter.CreateParameters (condition).ToList ();
			}

			return templateParameters.Any (parameter => IsExcluded (parameter, projectCreateParameters));
		}
 public ProjectCreateInformation()
 {
     Parameters = new ProjectCreateParameters();
 }
		public ProjectCreateInformation ()
		{
			Parameters = new ProjectCreateParameters ();
		}
		bool IsMatch (string language, ProjectCreateParameters parameters)
		{
			return (this.language == language) && !condition.IsExcluded (parameters);
		}
		public SolutionTemplate GetTemplate (string language, ProjectCreateParameters parameters)
		{
			return GetTemplate (template => template.IsMatch (language, parameters));
		}
		void AddAssemblyInfoFile (Project project)
		{
			var doc = new XmlDocument ();
			doc.LoadXml ("<FileTemplateReference TemplateID='CSharpAssemblyInfo' name='AssemblyInfo.cs' />");
			var fileTemplate = new FileTemplateReference ();
			fileTemplate.Load (doc.DocumentElement, null);

			var parameters = new ProjectCreateParameters();
			parameters["UseCustomAssemblyInfoVersion"] = "true";
			parameters["AssemblyInfoVersion"] = "1.0.0.0";

			fileTemplate.SetProjectTagModel(parameters);
			fileTemplate.AddToProject (project.ParentFolder, project, "C#", project.BaseDirectory, "");
			fileTemplate.SetProjectTagModel(null);
		}
		ProjectCreateParameters CreateParameters (string name, string value)
		{
			var parameters = new ProjectCreateParameters ();
			parameters [name] = value;
			return parameters;
		}
		bool IsExcluded (TemplateParameter parameter, ProjectCreateParameters parameters)
		{
			return !String.Equals (parameters [parameter.Name], parameter.Value, StringComparison.OrdinalIgnoreCase);
		}
		public void Init ()
		{
			parameters = new ProjectCreateParameters ();
		}