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;
}