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."); }
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); } }
/// <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); }
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."); }
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); } }
/// <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); }
public SchematronValidatorTests() { _fileResolver = EmbeddedResourceResolver.Create(AssemblyType.Caller); }
/// <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); } }
public StylesheetTransformerTests() { _unitTestAssemblyResolver = EmbeddedResourceResolver.Create(AssemblyType.Caller); }
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); } }
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); } }
/// <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; }
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); }