Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 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");
     }
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 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);
 }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 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);
 }
Esempio n. 7
0
 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);
     }
 }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
        }