public void Open_ResourceExists_ReturnsContents()
        {
            var resolver = new EmbeddedResourceResolver();
            var result   =
                resolver.Open(
                    new PathDefinition
            {
                IsWildcard       = true,
                VirtualPath      = "~/Test/",
                ResourceLocation = Assembly.GetExecutingAssembly().CodeBase
            },
                    "~/Test/Resources/Designer.cshtml");

            string resultString;

            using (var sr = new StreamReader(result))
            {
                resultString = sr.ReadToEnd();
            }

            Assert.AreEqual(@"@model string
@{
    ViewBag.Title = ""DesignerView"";
}

My Content", resultString, "The content of the file is not as expected.");
        }
Example #2
0
        private XmlReaderSettings settings = null; // global settings to open the xml files
        //private Report report;

        /// <summary>
        /// Initialize the validator
        /// </summary>
        public PptxValidator()
        {
            try
            {
                this.settings = new XmlReaderSettings();
                //this.report = report;

                // resolver
                EmbeddedResourceResolver resolver = new EmbeddedResourceResolver(Assembly.GetEntryAssembly(),
                                                                                 "OdfConverter.CommandLineTool", ".resources.", true);
                this.settings.XmlResolver = resolver;

                // schemas
                this.settings.Schemas.XmlResolver = resolver;

                this.settings.Schemas.Add(OOX_RELATIONSHIP_NS, OOX_RELATIONSHIP_SCHEMA);
                this.settings.Schemas.Add(OOX_CONTENT_TYPE_NS, OOX_CONTENT_TYPE_SCHEMA);
                //this.settings.Schemas.Add(OOX_META_CORE_NS, OOX_META_CORE_SCHEMA);
                this.settings.Schemas.Add(OOX_META_APP_NS, OOX_META_APP_SCHEMA);


                this.settings.ValidationType          = ValidationType.Schema;
                this.settings.ValidationEventHandler += new ValidationEventHandler(ValidationHandler);
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }
        }
Example #3
0
        /// <summary>
        /// Initialize the validator
        /// </summary>
        public OoxValidator(ConversionReport report)
        {
            this.settings = new XmlReaderSettings();
            this.report   = report;

            // resolver
            EmbeddedResourceResolver resolver = new EmbeddedResourceResolver(Assembly.GetExecutingAssembly(),
                                                                             this.GetType().Namespace, ".resources.", true);

            this.settings.XmlResolver = resolver;

            // schemas
            this.settings.Schemas.XmlResolver = resolver;

            this.settings.Schemas.Add(OOX_RELATIONSHIP_NS, OOX_RELATIONSHIP_SCHEMA);
            this.settings.Schemas.Add(OOX_CONTENT_TYPE_NS, OOX_CONTENT_TYPE_SCHEMA);
            this.settings.Schemas.Add(OOX_META_CORE_NS, OOX_META_CORE_SCHEMA);
            this.settings.Schemas.Add(OOX_META_APP_NS, OOX_META_APP_SCHEMA);
            this.settings.Schemas.Add(OOX_WORDML_NS, OOX_WORDML_SCHEMA);
            this.settings.Schemas.Add(OOX_DML_NS, OOX_DML_STYLE_SCHEMA);
            this.settings.Schemas.Add(OOX_PICTURE_NS, OOX_DML_PICTURE_SCHEMA);
            this.settings.Schemas.Add(OOX_WPDRAWING_NS, OOX_DML_WPDRAWING_SCHEMA);

            this.settings.ValidationType          = ValidationType.Schema;
            this.settings.ValidationEventHandler += new ValidationEventHandler(ValidationHandler);
        }
Example #4
0
        protected XslCompiledTransform LoadTransformation()
        {
            XslCompiledTransform     xslt     = new XslCompiledTransform();
            EmbeddedResourceResolver resolver = new EmbeddedResourceResolver(GetType());

            xslt.Load(SourceFile, XsltSettings.TrustedXslt, resolver);

            return(xslt);
        }
        public void Exists_ResourceDoesNotExist_ReturnsFalse()
        {
            var resolver = new EmbeddedResourceResolver();
            var result   = resolver.Exists(new PathDefinition()
            {
                IsWildcard       = true,
                VirtualPath      = "~/Test/",
                ResourceLocation = Assembly.GetExecutingAssembly().CodeBase
            }, "~/Test/Resources/Imaginary/Master.Designer.cshtml");

            Assert.IsFalse(result);
        }
        public void Exists_ResourceExists_ReturnsTrue()
        {
            var resolver = new EmbeddedResourceResolver();
            var result   = resolver.Exists(new PathDefinition()
            {
                IsWildcard       = true,
                VirtualPath      = "~/Test/",
                ResourceLocation = Assembly.GetExecutingAssembly().CodeBase
            }, "~/Test/Resources/Designer.cshtml");

            Assert.IsTrue(result, "The method returns that resource doesn't exist when it does.");
        }
        public override string ToString()
        {
            var resolver = new EmbeddedResourceResolver();

            using (var xml = ToXmlStream()) {
                using (var output = new StringWriter()) {
                    using (var xsl_stream = resolver.GetResource("cadenaoriginal_TFD_1_0.xslt")) {
                        XslCompiledTransform xslt = new XslCompiledTransform();
                        xslt.Load(XmlReader.Create(xsl_stream), XsltSettings.TrustedXslt, resolver);
                        xslt.Transform(XmlReader.Create(xml), null, output);
                        return(output.ToString());
                    }
                }
            }
        }
        public void Exists_ResourceDoesNotExist_ReturnsFalse()
        {
            //Arrange
            var resolver = new EmbeddedResourceResolver();

            //Act
            var result = resolver.Exists(new PathDefinition()
            {
                IsWildcard       = true,
                VirtualPath      = "~/Test/",
                ResourceLocation = Assembly.GetExecutingAssembly().CodeBase
            }, "~/Test/Resources/Imaginary/Designer.cshtml");

            //Assert
            Assert.IsFalse(result, "The method returns that resource exist when it doesn't.");
        }
Example #9
0
        private static void FormatOutput(string outputPath)
        {
            if (!File.Exists(outputPath))
            {
                return;
            }
            string tempPath = Path.GetTempFileName();

            File.Delete(tempPath);
            File.Move(outputPath, tempPath);
            var xslt     = new XslCompiledTransform();
            var resolver = new EmbeddedResourceResolver();

            xslt.Load("ReportXslt.xslt", XsltSettings.TrustedXslt, resolver);
            using (var reader = XmlReader.Create(tempPath))
            {
                xslt.Transform(reader, XmlWriter.Create(outputPath));
            }
            File.Delete(tempPath);
        }
        public void GenerateSolution(string solutionPath)
        {
            if (this.m_SolutionTransform == null)
            {
                var resolver = new EmbeddedResourceResolver();
                this.m_SolutionTransform = new XslCompiledTransform();
                Stream generateSolutionStream;
                var    generateSolutionXSLT = Path.Combine(this.m_RootPath, "Build", "GenerateSolution.xslt");
                if (File.Exists(generateSolutionXSLT))
                {
                    generateSolutionStream = File.Open(generateSolutionXSLT, FileMode.Open);
                }
                else
                {
                    generateSolutionStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(
                        "Protobuild.BuildResources.GenerateSolution.xslt");
                }
                using (generateSolutionStream)
                {
                    using (var reader = XmlReader.Create(generateSolutionStream))
                    {
                        this.m_SolutionTransform.Load(
                            reader,
                            XsltSettings.TrustedXslt,
                            resolver
                            );
                    }
                }
            }

            var input = this.CreateInputFor(this.m_Platform);

            using (var writer = new StreamWriter(solutionPath))
            {
                this.m_SolutionTransform.Transform(input, null, writer);
            }
        }
Example #11
0
 /// <summary>
 /// Get stream from embedded resource in the current code assembly
 /// </summary>
 /// <param name="resourceName"></param>
 /// <returns></returns>
 public static Stream GetStreamFromAssembly(this string resourceName) => EmbeddedResourceResolver.Create(AssemblyType.Library).GetResourceStream(resourceName);
        public void Generate(string project)
        {
            if (this.m_ProjectTransform == null)
            {
                var resolver = new EmbeddedResourceResolver();
                this.m_ProjectTransform = new XslCompiledTransform();
                using (var reader = XmlReader.Create(ResourceExtractor.GetGenerateProjectXSLT(this.m_RootPath)))
                {
                    this.m_ProjectTransform.Load(
                        reader,
                        XsltSettings.TrustedXslt,
                        resolver
                    );
                }
            }
            if (this.m_NuspecTransform == null)
            {
                var resolver = new EmbeddedResourceResolver();
                this.m_NuspecTransform = new XslCompiledTransform();
                Stream generateNuspecStream;
                var generateNuspecXSLT = Path.Combine(this.m_RootPath, "Build", "GenerateNuspec.xslt");
                if (File.Exists(generateNuspecXSLT))
                    generateNuspecStream = File.Open(generateNuspecXSLT, FileMode.Open);
                else
                    generateNuspecStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(
                        "Protobuild.BuildResources.GenerateNuspec.xslt");
                using (generateNuspecStream)
                {
                    using (var reader = XmlReader.Create(generateNuspecStream))
                    {
                        this.m_NuspecTransform.Load(
                            reader,
                            XsltSettings.TrustedXslt,
                            resolver
                        );
                    }
                }
            }

            // Work out what document this is.
            var projectDoc = this.m_ProjectDocuments.First(
                x => x.DocumentElement.Attributes["Name"].Value == project);

            // Check to see if we have a Project node; if not
            // then this is an external or other type of project
            // that we don't process.
            if (projectDoc == null ||
                projectDoc.DocumentElement.Name != "Project")
                return;

            // Work out what path to save at.
            var path = Path.Combine(
                this.m_RootPath,
                projectDoc.DocumentElement.Attributes["Path"].Value
                    .Replace('\\', Path.DirectorySeparatorChar)
                    .Replace('/', Path.DirectorySeparatorChar),
                projectDoc.DocumentElement.Attributes["Name"].Value + "." +
                this.m_Platform + ".csproj");
            path = new FileInfo(path).FullName;

            // Work out what path the NuGet packages.config might be at.
            var packagesPath = Path.Combine(
                this.m_RootPath,
                projectDoc.DocumentElement.Attributes["Path"].Value,
                "packages.config");

            // Generate the input document.
            var input = this.CreateInputFor(
                project,
                this.m_Platform,
                packagesPath,
                projectDoc.DocumentElement.ChildNodes
                    .Cast<XmlElement>()
                    .Where(x => x.Name.ToLower() == "properties")
                    .SelectMany(x => x.ChildNodes
                        .Cast<XmlElement>()));

            // Transform the input document using the XSLT transform.
            var settings = new XmlWriterSettings();
            settings.Indent = true;
            using (var writer = XmlWriter.Create(path, settings))
            {
                this.m_ProjectTransform.Transform(input, writer);
            }

            // Generate NuSpec target.
            var nuspecPath = path.Substring(0, path.Length - ".csproj".Length) + ".nuspec";
            using (var memory = new MemoryStream())
            {
                using (var writer = XmlWriter.Create(memory, settings))
                {
                    this.m_NuspecTransform.Transform(input, writer);
                    writer.Flush();
                }
                if (memory.Position > 0)
                {
                    memory.Seek(0, SeekOrigin.Begin);
                    using (var writer = new FileStream(nuspecPath, FileMode.Create))
                    {
                        memory.CopyTo(writer);
                        writer.Flush();
                    }
                }
            }

            // Also remove any left over .sln or .userprefs files.
            var slnPath = Path.Combine(
                this.m_RootPath,
                projectDoc.DocumentElement.Attributes["Path"].Value,
                projectDoc.DocumentElement.Attributes["Name"].Value + "." +
                this.m_Platform + ".sln");
            var userprefsPath = Path.Combine(
                this.m_RootPath,
                projectDoc.DocumentElement.Attributes["Path"].Value,
                projectDoc.DocumentElement.Attributes["Name"].Value + "." +
                this.m_Platform + ".userprefs");
            if (File.Exists(slnPath))
                File.Delete(slnPath);
            if (File.Exists(userprefsPath))
                File.Delete(userprefsPath);
        }
Example #13
0
 public SchematronValidatorTests()
 {
     _fileResolver = EmbeddedResourceResolver.Create(AssemblyType.Caller);
 }
Example #14
0
 /// <summary>
 /// <see cref="SchematronValidator"/> instance constructor
 /// </summary>
 /// <param name="schematronStream">Schematron content stream</param>
 public SchematronValidator(Stream schematronStream)
 {
     _schematronStream = schematronStream ?? throw new ArgumentNullException(nameof(schematronStream));
     _resolver         = EmbeddedResourceResolver.Create(AssemblyType.Library);
     _transformer      = new StylesheetTransformer(_resolver);
 }
        public void Generate(string project)
        {
            if (this.m_ProjectTransform == null)
            {
                var resolver = new EmbeddedResourceResolver();
                this.m_ProjectTransform = new XslCompiledTransform();
                using (var reader = XmlReader.Create(ResourceExtractor.GetGenerateProjectXSLT(this.m_RootPath)))
                {
                    this.m_ProjectTransform.Load(
                        reader,
                        XsltSettings.TrustedXslt,
                        resolver
                        );
                }
            }
            if (this.m_NuspecTransform == null)
            {
                var resolver = new EmbeddedResourceResolver();
                this.m_NuspecTransform = new XslCompiledTransform();
                Stream generateNuspecStream;
                var    generateNuspecXSLT = Path.Combine(this.m_RootPath, "Build", "GenerateNuspec.xslt");
                if (File.Exists(generateNuspecXSLT))
                {
                    generateNuspecStream = File.Open(generateNuspecXSLT, FileMode.Open);
                }
                else
                {
                    generateNuspecStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(
                        "Protobuild.BuildResources.GenerateNuspec.xslt");
                }
                using (generateNuspecStream)
                {
                    using (var reader = XmlReader.Create(generateNuspecStream))
                    {
                        this.m_NuspecTransform.Load(
                            reader,
                            XsltSettings.TrustedXslt,
                            resolver
                            );
                    }
                }
            }

            // Work out what document this is.
            var projectDoc = this.m_ProjectDocuments.First(
                x => x.DocumentElement.Attributes["Name"].Value == project);

            // Check to see if we have a Project node; if not
            // then this is an external or other type of project
            // that we don't process.
            if (projectDoc == null ||
                projectDoc.DocumentElement.Name != "Project")
            {
                return;
            }

            // Work out what path to save at.
            var path = Path.Combine(
                this.m_RootPath,
                projectDoc.DocumentElement.Attributes["Path"].Value
                .Replace('\\', Path.DirectorySeparatorChar)
                .Replace('/', Path.DirectorySeparatorChar),
                projectDoc.DocumentElement.Attributes["Name"].Value + "." +
                this.m_Platform + ".csproj");

            path = new FileInfo(path).FullName;

            // Work out what path the NuGet packages.config might be at.
            var packagesPath = Path.Combine(
                this.m_RootPath,
                projectDoc.DocumentElement.Attributes["Path"].Value,
                "packages.config");

            // Generate the input document.
            var input = this.CreateInputFor(
                project,
                this.m_Platform,
                packagesPath,
                projectDoc.DocumentElement.ChildNodes
                .Cast <XmlElement>()
                .Where(x => x.Name.ToLower() == "properties")
                .SelectMany(x => x.ChildNodes
                            .Cast <XmlElement>()));

            // Transform the input document using the XSLT transform.
            var settings = new XmlWriterSettings();

            settings.Indent = true;
            using (var writer = XmlWriter.Create(path, settings))
            {
                this.m_ProjectTransform.Transform(input, writer);
            }

            // Generate NuSpec target.
            var nuspecPath = path.Substring(0, path.Length - ".csproj".Length) + ".nuspec";

            using (var memory = new MemoryStream())
            {
                using (var writer = XmlWriter.Create(memory, settings))
                {
                    this.m_NuspecTransform.Transform(input, writer);
                    writer.Flush();
                }
                if (memory.Position > 0)
                {
                    memory.Seek(0, SeekOrigin.Begin);
                    using (var writer = new FileStream(nuspecPath, FileMode.Create))
                    {
                        memory.CopyTo(writer);
                        writer.Flush();
                    }
                }
            }

            // Also remove any left over .sln or .userprefs files.
            var slnPath = Path.Combine(
                this.m_RootPath,
                projectDoc.DocumentElement.Attributes["Path"].Value,
                projectDoc.DocumentElement.Attributes["Name"].Value + "." +
                this.m_Platform + ".sln");
            var userprefsPath = Path.Combine(
                this.m_RootPath,
                projectDoc.DocumentElement.Attributes["Path"].Value,
                projectDoc.DocumentElement.Attributes["Name"].Value + "." +
                this.m_Platform + ".userprefs");

            if (File.Exists(slnPath))
            {
                File.Delete(slnPath);
            }
            if (File.Exists(userprefsPath))
            {
                File.Delete(userprefsPath);
            }
        }
Example #16
0
 public StylesheetTransformerTests()
 {
     _unitTestAssemblyResolver = EmbeddedResourceResolver.Create(AssemblyType.Caller);
 }
Example #17
0
 public SchemaValidatorTests()
 {
     _localResolver = EmbeddedResourceResolver.Create(AssemblyType.Caller);
 }
        public void GenerateSolution(string solutionPath)
        {
            if (this.m_SolutionTransform == null)
            {
                var resolver = new EmbeddedResourceResolver();
                this.m_SolutionTransform = new XslCompiledTransform();
                Stream generateSolutionStream;
                var generateSolutionXSLT = Path.Combine(this.m_RootPath, "Build", "GenerateSolution.xslt");
                if (File.Exists(generateSolutionXSLT))
                    generateSolutionStream = File.Open(generateSolutionXSLT, FileMode.Open);
                else
                    generateSolutionStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(
                        "Protobuild.BuildResources.GenerateSolution.xslt");
                using (generateSolutionStream)
                {
                    using (var reader = XmlReader.Create(generateSolutionStream))
                    {
                        this.m_SolutionTransform.Load(
                            reader,
                            XsltSettings.TrustedXslt,
                            resolver
                        );
                    }
                }
            }

            var input = this.CreateInputFor(this.m_Platform);
            using (var writer = new StreamWriter(solutionPath))
            {
                this.m_SolutionTransform.Transform(input, null, writer);
            }
        }
Example #19
0
        public void GenerateSolution(string solutionPath, IEnumerable<string> repositoryPaths)
        {
            if (this.m_SolutionTransform == null)
            {
                var resolver = new EmbeddedResourceResolver();
                this.m_SolutionTransform = new XslCompiledTransform();
                Stream generateSolutionStream;
                var generateSolutionXSLT = Path.Combine(this.m_RootPath, "Build", "GenerateSolution.xslt");
                if (File.Exists(generateSolutionXSLT))
                    generateSolutionStream = File.Open(generateSolutionXSLT, FileMode.Open);
                else
                    generateSolutionStream = ResourceExtractor.GetTransparentDecompressionStream(
                        Assembly.GetExecutingAssembly().GetManifestResourceStream(
                        "Protobuild.BuildResources.GenerateSolution.xslt.gz"));
                using (generateSolutionStream)
                {
                    using (var reader = XmlReader.Create(generateSolutionStream))
                    {
                        this.m_SolutionTransform.Load(
                            reader,
                            XsltSettings.TrustedXslt,
                            resolver
                        );
                    }
                }
            }

            var input = this.CreateInputFor(this.m_Platform);
            using (var writer = new StreamWriter(solutionPath))
            {
                this.m_SolutionTransform.Transform(input, null, writer);
            }

            if (repositoryPaths != null && repositoryPaths.Any())
            {
                GenerateRepositoriesConfig(solutionPath, repositoryPaths);
            }
        }
Example #20
0
        /// <summary>
        /// Generates a project at the target path.
        /// </summary>
        /// <param name="project">The path to the project file.</param>
        /// <param name="packagesFilePath">
        /// Either the full path to the packages.config for the
        /// generated project if it exists, or an empty string.
        /// </param>
        public void Generate(string project, out string packagesFilePath)
        {
            packagesFilePath = "";

            if (this.m_ProjectTransform == null)
            {
                var resolver = new EmbeddedResourceResolver();
                this.m_ProjectTransform = new XslCompiledTransform();
                using (var reader = XmlReader.Create(ResourceExtractor.GetGenerateProjectXSLT(this.m_RootPath)))
                {
                    this.m_ProjectTransform.Load(
                        reader,
                        XsltSettings.TrustedXslt,
                        resolver
                    );
                }
            }

            // Work out what document this is.
            var projectDoc = this.m_ProjectDocuments.First(
                x => x.DocumentElement.Attributes["Name"].Value == project);

            // Check to see if we have a Project node; if not
            // then this is an external or other type of project
            // that we don't process.
            if (projectDoc == null ||
                projectDoc.DocumentElement.Name != "Project")
                return;

            // Work out what path to save at.
            var path = Path.Combine(
                this.m_RootPath,
                projectDoc.DocumentElement.Attributes["Path"].Value
                    .Replace('\\', Path.DirectorySeparatorChar)
                    .Replace('/', Path.DirectorySeparatorChar),
                projectDoc.DocumentElement.Attributes["Name"].Value + "." +
                this.m_Platform + ".csproj");

            // Make sure that the directory exists where the file will be stored.
            var targetFile = new FileInfo(path);
            if (!targetFile.Directory.Exists)
                targetFile.Directory.Create();

            path = targetFile.FullName;

            // Handle NuGet packages.config early so that it'll be in place
            // when the generator automatically determined dependencies.
            this.HandleNuGetConfig(projectDoc);

            // Work out what path the NuGet packages.config might be at.
            var packagesFile = new FileInfo(
                Path.Combine(
                    this.m_RootPath,
                    projectDoc.DocumentElement.Attributes["Path"].Value
                        .Replace('\\', Path.DirectorySeparatorChar)
                        .Replace('/', Path.DirectorySeparatorChar),
                    "packages.config"));

            // Generate the input document.
            var input = this.CreateInputFor(
                project,
                this.m_Platform,
                packagesFile.FullName,
                projectDoc.DocumentElement.ChildNodes
                    .OfType<XmlElement>()
                    .Where(x => x.Name.ToLower() == "properties")
                    .SelectMany(x => x.ChildNodes
                        .OfType<XmlElement>()));

            // Transform the input document using the XSLT transform.
            var settings = new XmlWriterSettings();
            settings.Indent = true;
            using (var writer = XmlWriter.Create(path, settings))
            {
                this.m_ProjectTransform.Transform(input, writer);
            }

            // Also remove any left over .sln or .userprefs files.
            var slnPath = Path.Combine(
                this.m_RootPath,
                projectDoc.DocumentElement.Attributes["Path"].Value,
                projectDoc.DocumentElement.Attributes["Name"].Value + "." +
                this.m_Platform + ".sln");
            var userprefsPath = Path.Combine(
                this.m_RootPath,
                projectDoc.DocumentElement.Attributes["Path"].Value,
                projectDoc.DocumentElement.Attributes["Name"].Value + "." +
                this.m_Platform + ".userprefs");
            if (File.Exists(slnPath))
                File.Delete(slnPath);
            if (File.Exists(userprefsPath))
                File.Delete(userprefsPath);

            // Only return the package file path if it exists.
            if (packagesFile.Exists)
                packagesFilePath = packagesFile.FullName;
        }
Example #21
0
 private static void FormatOutput(string outputPath)
 {
     if (!File.Exists(outputPath)) return;
     string tempPath = Path.GetTempFileName();
     File.Delete(tempPath);
     File.Move(outputPath, tempPath);
     var xslt = new XslCompiledTransform();
     var resolver = new EmbeddedResourceResolver();
     xslt.Load("ReportXslt.xslt", XsltSettings.TrustedXslt, resolver);
     using (var reader = XmlReader.Create(tempPath))
     {                
         xslt.Transform(reader, XmlWriter.Create(outputPath));
     }
     File.Delete(tempPath);
 }