public void WriteAsInlineXbrlFiling() { // Arrange var zipArchive = ZipFile.Open(@"Samples\IFRST_2017-03-09.zip", ZipArchiveMode.Read); var fileReader = new ZipArchiveReader(zipArchive); var taxonomySource = new TaxonomyFileSet(fileReader); var instance = LoadInstanceFromExcelDocument(@"Samples\BSharpIfrsFactsValuesSampleV1.xlsx"); instance.Dts.AddTaxonomy(new Uri("http://xbrl.ifrs.org/taxonomy/2017-03-09/full_ifrs_entry_point_2017-03-09.xsd"), taxonomySource); AddExtensionTaxonomy(instance.Dts); var writerSettings = new InlineXbrlFilingWriterSettings { Title = "iXBRL Export", Culture = new CultureInfo("en-GB"), Scale = 3, Scope = new ScopeSettings { PresentationNetworks = GetSupportedPresentationNetworks() }, InlineXbrlFileName = "banan-20180710.xhtml" }; // Act var xTemplate = XDocument.Load(@"Samples\iXBRL.xhtml"); var writer = new InlineXbrlFilingWriter(xTemplate, writerSettings); instance.Save(writer); // Assert File.WriteAllBytes(@"C:\temp\banan-20180710.zip", writer.ZipArchiveBytes); }
public void WriteAsWord() { // Arrange var zipArchive = ZipFile.Open(@"Samples\IFRST_2017-03-09.zip", ZipArchiveMode.Read); var fileReader = new ZipArchiveReader(zipArchive); var taxonomySource = new TaxonomyFileSet(fileReader); var instance = LoadInstanceFromExcelDocument(@"Samples\BSharpIfrsFactsValuesSampleV1.xlsx"); instance.Dts.AddTaxonomy(new Uri("http://xbrl.ifrs.org/taxonomy/2017-03-09/full_ifrs_entry_point_2017-03-09.xsd"), taxonomySource); AddExtensionTaxonomy(instance.Dts); var writerSettings = new WordWriterSettings { Culture = new CultureInfo("en-GB"), Scale = 3, Scope = new ScopeSettings { PresentationNetworks = GetSupportedPresentationNetworks() }, }; // Act var templateBytes = File.ReadAllBytes(@"Samples\Word.docx"); var writer = new WordWriter(templateBytes, writerSettings); instance.Save(writer); // Assert File.WriteAllBytes(@"C:\temp\banan-20180710.docx", writer.DocumentBytes); }
public void AddFromExtension() { // Arrange var zipArchive = ZipFile.Open(@"Samples\IFRST_2017-03-09.zip", ZipArchiveMode.Read); var fileReader = new ZipArchiveReader(zipArchive); var taxonomySource = new TaxonomyFileSet(fileReader); var dts = new DiscoverableTaxonomySet(); var baseTaxonomy = dts.AddTaxonomy(new Uri("http://xbrl.ifrs.org/taxonomy/2017-03-09/full_ifrs_entry_point_2017-03-09.xsd"), taxonomySource); XNamespace bSharpNamespace = "http://banan-it.com/taxonomy/2018-07-05/bsharp"; XNamespace ifrsNamespace = "http://xbrl.ifrs.org/taxonomy/2017-03-09/ifrs-full"; var extension = new TaxonomyExtension("banan", bSharpNamespace); var concept1 = new ExtensionConcept("ComputerEquipment", DataTypeRegistry.Monetary, BalanceTypes.Debit, PeriodTypes.Instant); concept1.AddLabel("Computer equipment", "en"); concept1.AddLocation(new Uri("http://xbrl.ifrs.org/role/ifrs/ias_1_2017-03-09_role-800100"), ifrsNamespace + "PropertyPlantAndEquipmentAbstract", ifrsNamespace + "OfficeEquipment"); extension.ExtensionItems.Add(concept1); var member1 = new ExtensionMember("BestPaintMember"); member1.AddLabel("Best Paint", "en"); member1.AddLocation( ifrsNamespace + "DisclosureOfOperatingSegmentsTable", ifrsNamespace + "SegmentsAxis", ifrsNamespace + "ReportableSegmentsMember", null); extension.ExtensionItems.Add(member1); // Act var extensionTaxonomy = dts.AddTaxonomy(new Uri("banan-20180710.xsd", UriKind.Relative), extension); }
public void AddFromFileSet() { // Arrange var zipArchive = ZipFile.Open(@"Samples\IFRST_2017-03-09.zip", ZipArchiveMode.Read); var fileReader = new ZipArchiveReader(zipArchive); var taxonomySource = new TaxonomyFileSet(fileReader); // Act var dts = new DiscoverableTaxonomySet(); var taxonomy = dts.AddTaxonomy(new Uri("http://xbrl.ifrs.org/taxonomy/2017-03-09/full_ifrs_entry_point_2017-03-09.xsd"), taxonomySource); }
public void WriteBaseTaxonomy() { // Arrange var zipArchive = ZipFile.Open(@"Samples\IFRST_2017-03-09.zip", ZipArchiveMode.Read); var fileReader = new ZipArchiveReader(zipArchive); var taxonomySource = new TaxonomyFileSet(fileReader); var dts = new DiscoverableTaxonomySet(); var baseTaxonomy = dts.AddTaxonomy(new Uri("http://xbrl.ifrs.org/taxonomy/2017-03-09/full_ifrs_entry_point_2017-03-09.xsd"), taxonomySource); // Act var writer = new ZipArchiveWriter(); baseTaxonomy.Save(writer); // Assert File.WriteAllBytes(@"C:\temp\IFRST_2017-03-09-exported.zip", writer.ZipArchiveBytes); }
public override void Invoke() { base.Invoke(); if (!NamedParameters.ContainsKey("entry")) { Context.Logger.WriteLine("Parameter 'entry' is missing."); return; } var entry = NamedParameters["entry"]; IFileReader fileReader; if (NamedParameters.ContainsKey("manifest")) { var manifest = NamedParameters["manifest"]; var manifestReader = new ManifestResourcesReader(GetType()); var stream = manifestReader.GetStream(manifest); var zipArchive = new ZipArchive(stream, ZipArchiveMode.Read, leaveOpen: false); fileReader = new ZipArchiveReader(zipArchive); } else if (NamedParameters.ContainsKey("archive")) { var archive = NamedParameters["archive"]; var zipArchive = ZipFile.Open(archive, ZipArchiveMode.Read); fileReader = new ZipArchiveReader(zipArchive); } else if (NamedParameters.ContainsKey("dir")) { var dir = NamedParameters["dir"]; fileReader = new FileSystemReader(dir); } else { Context.Logger.WriteLine("You must specify either dir, manifest or archive to define the source location of the entry point."); return; } var taxonomySource = new TaxonomyFileSet(fileReader); Instance.Dts.AddTaxonomy(new Uri(entry), taxonomySource); }
public void WriteAsXbrl() { // Arrange var zipArchive = ZipFile.Open(@"Samples\IFRST_2017-03-09.zip", ZipArchiveMode.Read); var fileReader = new ZipArchiveReader(zipArchive); var taxonomySource = new TaxonomyFileSet(fileReader); var instance = LoadInstanceFromExcelDocument(@"Samples\BSharpIfrsFactsValuesSampleV1.xlsx"); instance.Dts.AddTaxonomy(new Uri("http://xbrl.ifrs.org/taxonomy/2017-03-09/full_ifrs_entry_point_2017-03-09.xsd"), taxonomySource); AddExtensionTaxonomy(instance.Dts); // Act var writer = new XbrlWriter(); instance.Save(writer); // Assert File.WriteAllText(@"C:\temp\banan-20180710.xml", writer.Document.ToString()); }