private bool ShouldLoad(Microsoft.Expression.Project.Templates.VSTemplate vsTemplate) { bool flag; if (this.TemplateFilters != null) { using (IEnumerator <ITemplateFilter> enumerator = this.TemplateFilters.GetEnumerator()) { while (enumerator.MoveNext()) { ITemplateFilter current = enumerator.Current; try { if (!current.ShouldLoad(vsTemplate.TemplateExtensibilityWrapper)) { flag = false; return(flag); } } catch (Exception exception) { } } return(true); } return(flag); } return(true); }
public ProjectItemTemplate(VSTemplate projectItemTemplate, Uri templateLocation) : base(projectItemTemplate, templateLocation) { if (string.Compare(projectItemTemplate.Type, "Item", StringComparison.OrdinalIgnoreCase) != 0) { throw new ArgumentException("Not a valid item template.", "projectItemTemplate"); } }
internal bool ValidateItemTemplate(string vsTemplatePath, Microsoft.Expression.Project.Templates.VSTemplate vsTemplate) { if (vsTemplatePath == null) { throw new ArgumentNullException("vsTemplatePath"); } if (vsTemplate == null) { throw new ArgumentNullException("vsTemplate"); } if (!this.ValidateTemplateType(vsTemplatePath, vsTemplate, "Item")) { return(false); } if (!this.ValidateAnyTemplate(vsTemplatePath, vsTemplate)) { return(false); } if (!this.ValidateTemplateNameDescriptionIcon(vsTemplatePath, vsTemplate.TemplateData.Icon, "Icon")) { return(false); } bool flag = false; if (vsTemplate.TemplateContent.Items != null) { object[] items = vsTemplate.TemplateContent.Items; for (int i = 0; i < (int)items.Length; i++) { object obj = items[i]; if (obj is VSTemplateTemplateContentProjectItem) { flag = true; } if (obj is VSTemplateTemplateContentReferences) { flag = true; } if (obj is VSTemplateTemplateContentProject) { CultureInfo currentCulture = CultureInfo.CurrentCulture; string unsupportedTemplateElement = StringTable.UnsupportedTemplateElement; object[] objArray = new object[] { "Project" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(currentCulture, unsupportedTemplateElement, objArray)); return(false); } } } if (flag) { return(true); } CultureInfo cultureInfo = CultureInfo.CurrentCulture; string invalidTemplateElement = StringTable.InvalidTemplateElement; object[] objArray1 = new object[] { "TemplateContent" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(cultureInfo, invalidTemplateElement, objArray1)); return(false); }
internal bool ValidateSdkItemTemplate(string vsTemplatePath, Microsoft.Expression.Project.Templates.VSTemplate vsTemplate) { if (!this.ValidateItemTemplate(vsTemplatePath, vsTemplate)) { return(false); } if (TemplateManager.IsPathFromSDK(vsTemplatePath, BlendSdkHelper.Wpf35) || TemplateManager.IsPathFromSDK(vsTemplatePath, BlendSdkHelper.Silverlight3)) { vsTemplate.TemplateData.MaxFrameworkVersionSpecified = true; vsTemplate.TemplateData.MaxFrameworkVersion = VSTemplateTemplateDataMaxFrameworkVersion.Item35; vsTemplate.TemplateData.RequiredFrameworkVersionSpecified = true; vsTemplate.TemplateData.RequiredFrameworkVersion = VSTemplateTemplateDataRequiredFrameworkVersion.Item30; } return(true); }
public bool ShouldUseTemplate(Microsoft.Expression.Project.IProject project, ITemplate templateToTest) { bool flag; Microsoft.Expression.Project.Templates.VSTemplate template; if (this.TemplateFilters != null) { Microsoft.Expression.Extensibility.Project.IProject project1 = null; TemplateBase templateBase = templateToTest as TemplateBase; if (templateBase != null) { template = templateBase.Template; } else { template = null; } Microsoft.Expression.Project.Templates.VSTemplate vSTemplate = template; if (vSTemplate != null) { using (IEnumerator <ITemplateFilter> enumerator = this.TemplateFilters.GetEnumerator()) { while (enumerator.MoveNext()) { ITemplateFilter current = enumerator.Current; try { if (project1 == null) { project1 = new Microsoft.Expression.Extensibility.Project.Project(project); } if (!current.ShouldUseTemplate(project1, vSTemplate.TemplateExtensibilityWrapper)) { flag = false; return(flag); } } catch (Exception exception) { } } return(true); } return(flag); } } return(true); }
internal bool ValidateSampleTemplate(string vsTemplatePath, Microsoft.Expression.Project.Templates.VSTemplate vsTemplate) { if (vsTemplatePath == null) { throw new ArgumentNullException("vsTemplatePath"); } if (vsTemplate == null) { throw new ArgumentNullException("vsTemplate"); } if (!this.ValidateProjectOrSampleTemplate(vsTemplatePath, vsTemplate)) { return(false); } return(true); }
private void readTemplate(string vsTemplatePath, string vsTemplateLocation, Stream fs, XmlSerializer serializer, TemplateManager.TemplateValidator filter, Action <Microsoft.Expression.Project.Templates.VSTemplate, string> acceptor) { Microsoft.Expression.Project.Templates.VSTemplate vSTemplate = null; try { vSTemplate = (Microsoft.Expression.Project.Templates.VSTemplate)serializer.Deserialize(fs); } catch (InvalidOperationException invalidOperationException) { this.LogTemplateLoadError(vsTemplateLocation, invalidOperationException.Message); } if (vSTemplate != null && (filter == null || filter(vsTemplateLocation, vSTemplate)) && this.ShouldLoad(vSTemplate)) { acceptor(vSTemplate, vsTemplatePath); } }
private bool ValidateTemplateType(string vsTemplatePath, Microsoft.Expression.Project.Templates.VSTemplate vsTemplate, string validType) { if (vsTemplate.Type == null) { CultureInfo currentCulture = CultureInfo.CurrentCulture; string missingTemplateAttribute = StringTable.MissingTemplateAttribute; object[] objArray = new object[] { "VSTemplate", "Type" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(currentCulture, missingTemplateAttribute, objArray)); return(false); } if (vsTemplate.Type.Equals(validType, StringComparison.Ordinal)) { return(true); } CultureInfo cultureInfo = CultureInfo.CurrentCulture; string invalidTemplateValue = StringTable.InvalidTemplateValue; object[] type = new object[] { "Type", vsTemplate.Type }; this.LogTemplateLoadError(vsTemplatePath, string.Format(cultureInfo, invalidTemplateValue, type)); return(false); }
private bool ValidateProjectOrSampleTemplate(string vsTemplatePath, Microsoft.Expression.Project.Templates.VSTemplate vsTemplate) { bool flag; object[] objArray; CultureInfo currentCulture; string invalidTemplateElement; if (vsTemplate.TemplateData != null && vsTemplate.TemplateData.ExpressionBlendPrototypingEnabled && (!this.IsPrototypingEnabled || vsTemplate.TemplateData.ProjectSubType == "Silverlight" && !BlendSdkHelper.IsSdkInstalled(BlendSdkHelper.CurrentSilverlightVersion) || vsTemplate.TemplateData.ProjectSubType == "WPF" && !BlendSdkHelper.IsSdkInstalled(BlendSdkHelper.CurrentWpfVersion))) { return(false); } if (!this.ValidateTemplateType(vsTemplatePath, vsTemplate, "Project")) { return(false); } if (!this.ValidateAnyTemplate(vsTemplatePath, vsTemplate)) { return(false); } bool flag1 = false; if (vsTemplate.TemplateContent.Items != null) { object[] items = vsTemplate.TemplateContent.Items; int num = 0; while (true) { if (num >= (int)items.Length) { if (flag1) { return(true); } currentCulture = CultureInfo.CurrentCulture; invalidTemplateElement = StringTable.InvalidTemplateElement; objArray = new object[] { "TemplateContent" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(currentCulture, invalidTemplateElement, objArray)); return(false); } object obj = items[num]; VSTemplateTemplateContentProject vSTemplateTemplateContentProject = obj as VSTemplateTemplateContentProject; if (vSTemplateTemplateContentProject != null) { if (vSTemplateTemplateContentProject.File == null) { CultureInfo cultureInfo = CultureInfo.CurrentCulture; string missingTemplateAttribute = StringTable.MissingTemplateAttribute; object[] objArray1 = new object[] { "Project", "File" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(cultureInfo, missingTemplateAttribute, objArray1)); flag = false; break; } else if (Microsoft.Expression.Framework.Documents.PathHelper.ValidatePath(vSTemplateTemplateContentProject.File) == null) { flag1 = true; } else { CultureInfo currentCulture1 = CultureInfo.CurrentCulture; string invalidTemplateValue = StringTable.InvalidTemplateValue; object[] file = new object[] { "File", vSTemplateTemplateContentProject.File }; this.LogTemplateLoadError(vsTemplatePath, string.Format(currentCulture1, invalidTemplateValue, file)); flag = false; break; } } if (obj is VSTemplateTemplateContentProjectItem) { CultureInfo cultureInfo1 = CultureInfo.CurrentCulture; string unsupportedTemplateElement = StringTable.UnsupportedTemplateElement; object[] objArray2 = new object[] { "ProjectItem" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(cultureInfo1, unsupportedTemplateElement, objArray2)); flag = false; break; } else if (!(obj is VSTemplateTemplateContentReferences)) { num++; } else { CultureInfo currentCulture2 = CultureInfo.CurrentCulture; string str = StringTable.UnsupportedTemplateElement; object[] objArray3 = new object[] { "References" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(currentCulture2, str, objArray3)); flag = false; break; } } return(flag); } if (flag1) { return(true); } currentCulture = CultureInfo.CurrentCulture; invalidTemplateElement = StringTable.InvalidTemplateElement; objArray = new object[] { "TemplateContent" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(currentCulture, invalidTemplateElement, objArray)); return(false); }
private bool ValidateAnyTemplate(string vsTemplatePath, Microsoft.Expression.Project.Templates.VSTemplate vsTemplate) { bool flag; if (vsTemplate.TemplateContent == null) { CultureInfo currentCulture = CultureInfo.CurrentCulture; string missingTemplateElement = StringTable.MissingTemplateElement; object[] objArray = new object[] { "TemplateContent" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(currentCulture, missingTemplateElement, objArray)); return(false); } if (vsTemplate.TemplateContent.Items == null) { CultureInfo cultureInfo = CultureInfo.CurrentCulture; string invalidTemplateElement = StringTable.InvalidTemplateElement; object[] objArray1 = new object[] { "TemplateContent" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(cultureInfo, invalidTemplateElement, objArray1)); return(false); } if (vsTemplate.TemplateContent.Items != null) { object[] items = vsTemplate.TemplateContent.Items; int num = 0; while (true) { if (num >= (int)items.Length) { goto Label0; } object obj = items[num]; if (!(obj is VSTemplateTemplateContentProjectCollection)) { VSTemplateTemplateContentReferences vSTemplateTemplateContentReference = obj as VSTemplateTemplateContentReferences; if (vSTemplateTemplateContentReference != null) { if (vSTemplateTemplateContentReference.References != null) { bool flag1 = false; VSTemplateTemplateContentReferencesReference[] references = vSTemplateTemplateContentReference.References; int num1 = 0; while (num1 < (int)references.Length) { VSTemplateTemplateContentReferencesReference vSTemplateTemplateContentReferencesReference = references[num1]; if (vSTemplateTemplateContentReferencesReference.Assembly == null) { CultureInfo currentCulture1 = CultureInfo.CurrentCulture; string str = StringTable.InvalidTemplateElement; object[] objArray2 = new object[] { "Reference" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(currentCulture1, str, objArray2)); flag = false; return(flag); } else if (!string.IsNullOrEmpty(vSTemplateTemplateContentReferencesReference.Assembly)) { flag1 = true; num1++; } else { CultureInfo cultureInfo1 = CultureInfo.CurrentCulture; string invalidTemplateElement1 = StringTable.InvalidTemplateElement; object[] objArray3 = new object[] { "Assembly" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(cultureInfo1, invalidTemplateElement1, objArray3)); flag = false; return(flag); } } if (!flag1) { CultureInfo currentCulture2 = CultureInfo.CurrentCulture; string str1 = StringTable.InvalidTemplateElement; object[] objArray4 = new object[] { "References" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(currentCulture2, str1, objArray4)); flag = false; break; } } else { CultureInfo cultureInfo2 = CultureInfo.CurrentCulture; string invalidTemplateElement2 = StringTable.InvalidTemplateElement; object[] objArray5 = new object[] { "References" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(cultureInfo2, invalidTemplateElement2, objArray5)); flag = false; break; } } num++; } else { CultureInfo currentCulture3 = CultureInfo.CurrentCulture; string unsupportedTemplateElement = StringTable.UnsupportedTemplateElement; object[] objArray6 = new object[] { "ProjectCollection" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(currentCulture3, unsupportedTemplateElement, objArray6)); flag = false; break; } } return(flag); } Label0: if (vsTemplate.TemplateData == null) { CultureInfo cultureInfo3 = CultureInfo.CurrentCulture; string missingTemplateElement1 = StringTable.MissingTemplateElement; object[] objArray7 = new object[] { "TemplateData" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(cultureInfo3, missingTemplateElement1, objArray7)); return(false); } if (!this.ValidateTemplateNameDescriptionIcon(vsTemplatePath, vsTemplate.TemplateData.Name, "Name") || !this.ValidateTemplateNameDescriptionIcon(vsTemplatePath, vsTemplate.TemplateData.Description, "Description")) { return(false); } if (vsTemplate.TemplateData.MaxFrameworkVersionSpecified && (vsTemplate.TemplateData.MaxFrameworkVersion == VSTemplateTemplateDataMaxFrameworkVersion.Item20 || vsTemplate.TemplateData.MaxFrameworkVersion == VSTemplateTemplateDataMaxFrameworkVersion.Item30 && vsTemplate.TemplateData.ProjectSubType != "Silverlight")) { CultureInfo currentCulture4 = CultureInfo.CurrentCulture; string str2 = StringTable.InvalidTemplateElement; object[] objArray8 = new object[] { "MaxFrameworkVersion" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(currentCulture4, str2, objArray8)); return(false); } if (vsTemplate.TemplateData.DefaultName != null && !Microsoft.Expression.Framework.Documents.PathHelper.IsValidFileOrDirectoryName(vsTemplate.TemplateData.DefaultName)) { CultureInfo cultureInfo4 = CultureInfo.CurrentCulture; string invalidTemplateElement3 = StringTable.InvalidTemplateElement; object[] objArray9 = new object[] { "DefaultName" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(cultureInfo4, invalidTemplateElement3, objArray9)); return(false); } if (vsTemplate.WizardData != null) { CultureInfo currentCulture5 = CultureInfo.CurrentCulture; string unsupportedTemplateElement1 = StringTable.UnsupportedTemplateElement; object[] objArray10 = new object[] { "WizardData" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(currentCulture5, unsupportedTemplateElement1, objArray10)); return(false); } if (vsTemplate.WizardExtension == null) { return(true); } CultureInfo cultureInfo5 = CultureInfo.CurrentCulture; string unsupportedTemplateElement2 = StringTable.UnsupportedTemplateElement; object[] objArray11 = new object[] { "WizardExtension" }; this.LogTemplateLoadError(vsTemplatePath, string.Format(cultureInfo5, unsupportedTemplateElement2, objArray11)); return(false); }