public void OpenFile_ReturnsCorrectContent(string urlPath) { var info = _fileProvider.MapUrlPath(urlPath, _mimeTypeProvider); var expectedText = StockResource.GetText(urlPath, Encoding.UTF8); using var stream = _fileProvider.OpenFile(info.Path); using var reader = new StreamReader(stream, Encoding.UTF8, false, WebServer.StreamCopyBufferSize, true); var actualText = reader.ReadToEnd(); Assert.AreEqual(expectedText, actualText, "Content is the same as embedded resource"); }
private void OnLoadLayoutFromFile(object sender, EventArgs e) { using (Stream stream = _fileProvider.OpenFile()) { if (stream == Stream.Null) { return; } LoadLayoutFromStream(stream); } }
// TODO maybe move some (or all) of this to the TemplateResolver public static TemplateInfo Load(TemplateResolver resolver, IFileProvider source, string name) { string specPath = System.IO.Path.Combine(name, Template.TemplateDefinitionFileName); if (!source.FileExists(specPath)) throw new FileNotFoundException("Couldn't find template specification: " + specPath + " from " + source.ToString(), specPath); Dictionary<string, TemplateParameterInfo> parameters = new Dictionary<string, TemplateParameterInfo>(); TemplateInfo inheritedTemplate = null; using (var fileStream = source.OpenFile(specPath, FileMode.Open)) { XDocument templateSpec = XDocument.Load(fileStream); XAttribute inheritsAttr = templateSpec.Element("template").Attribute("inherits"); if (inheritsAttr != null) { string inheritedTemplateName = inheritsAttr.Value; if (!resolver.TryResolve(inheritedTemplateName, out inheritedTemplate)) throw new Exception("Failed to resolve inherted template: " + inheritedTemplateName); // add inherited parameters foreach (TemplateParameterInfo param in inheritedTemplate.Parameters) parameters.Add(param.Name, param); } IEnumerable<XElement> parameterElements = templateSpec.XPathSelectElements("/template/parameter"); foreach (XElement parameterElement in parameterElements) { string paramName = parameterElement.Attribute("name").Value; string defaultValue = ReadOptionalAttribute(parameterElement, "select"); string description = ReadOptionalAttribute(parameterElement, "description"); // add or override inherited parameter default value parameters[paramName] = new TemplateParameterInfo(paramName, description, defaultValue); } } return new TemplateInfo(source, specPath, name, parameters.Values.ToArray(), inheritedTemplate); }
/// <summary> /// The load stylesheet. /// </summary> /// <param name="fileProvider"><see cref="IFileProvider"/> used to load the stylesheet.</param> /// <param name="name"> /// </param> /// <returns> /// </returns> private XslCompiledTransform LoadStylesheet(IFileProvider fileProvider, string name) { XslCompiledTransform ret = new XslCompiledTransform(true); using (Stream str = fileProvider.OpenFile(name, FileMode.Open)) { XmlReader reader = XmlReader.Create(str, new XmlReaderSettings { CloseInput = true, }); XsltSettings settings = new XsltSettings(false, true); XmlResolver resolver = new XmlFileProviderResolver(fileProvider); ret.Load(reader, settings, resolver); } return ret; }