MonoDevelop.Ide.Templates.ProjectTemplate.CreateProjects C# (CSharp) Method

CreateProjects() public method

public CreateProjects ( MonoDevelop.Projects.SolutionFolderItem policyParent, MonoDevelop.Projects.ProjectCreateInformation cInfo ) : IEnumerable
policyParent MonoDevelop.Projects.SolutionFolderItem
cInfo MonoDevelop.Projects.ProjectCreateInformation
return IEnumerable
		public IEnumerable<SolutionItem> CreateProjects (SolutionFolderItem policyParent, ProjectCreateInformation cInfo)
		{
			if (solutionDescriptor.EntryDescriptors.Length == 0)
				throw new InvalidOperationException ("Solution template doesn't have any project templates");

			var solutionEntryItems = new List<SolutionItem> ();
			packageReferencesForCreatedProjects = new List<PackageReferencesForCreatedProject> ();

			foreach (ISolutionItemDescriptor solutionItemDescriptor in GetItemsToCreate (solutionDescriptor, cInfo)) {
				ProjectCreateInformation itemCreateInfo = GetItemSpecificCreateInfo (solutionItemDescriptor, cInfo);
				itemCreateInfo = new ProjectTemplateCreateInformation (itemCreateInfo, cInfo.ProjectName);

				SolutionItem solutionEntryItem = solutionItemDescriptor.CreateItem (itemCreateInfo, this.languagename);
				if (solutionEntryItem != null) {
					solutionItemDescriptor.InitializeItem (policyParent, itemCreateInfo, this.languagename, solutionEntryItem);

					SavePackageReferences (solutionEntryItem, solutionItemDescriptor, itemCreateInfo);

					solutionEntryItems.Add (solutionEntryItem);
				}
			}

			var pDesc = this.solutionDescriptor.EntryDescriptors.OfType<ProjectDescriptor> ().FirstOrDefault ();
			var metadata = new Dictionary<string, string> ();
			metadata ["Id"] = this.Id;
			metadata ["Name"] = this.nonLocalizedName;
			metadata ["Language"] = this.LanguageName;
			metadata ["Platform"] = pDesc != null ? pDesc.ProjectType : "Unknown";
			TemplateCounter.Inc (1, null, metadata);

			return solutionEntryItems;
		}