private void FillFromExcelDocument(string fileName, XElement xDeclarationsHolder) { var etbUnit = new CurrencyUnit("ETB"); Instance.Units.Add(etbUnit); var quarter1Of2018 = new DurationPeriod(new DateTime(2018, 1, 1), new DateTime(2018, 3, 31)); var startOfQuarter1Of2018 = new InstantPeriod(new DateTime(2017, 12, 31)); var endOfQuarter1Of2018 = new InstantPeriod(new DateTime(2018, 3, 31)); Instance.Periods.Add(quarter1Of2018); Instance.Periods.Add(startOfQuarter1Of2018); Instance.Periods.Add(endOfQuarter1Of2018); var wsi = new Entity { Id = "wsi", IdentifierScheme = new Uri("http://www.sec.gov/CIK"), Identifier = "WSI", Name = "Walia Steel Industry PLC" }; Instance.Entities.Add(wsi); var package = new ExcelPackage(new FileInfo(fileName)); var worksheet = package.Workbook.Worksheets[1]; ExcelRangeBase conceptCell = worksheet.Cells["B2"]; ExcelRangeBase valueCell = worksheet.Cells["C2"]; ExcelRangeBase startDateCell = worksheet.Cells["D2"]; ExcelRangeBase dateOrEndDateCell = worksheet.Cells["E2"]; ExcelRangeBase explicitMembersCell = worksheet.Cells["F2"]; while (conceptCell.Value != null && valueCell.Value != null) { var concept = conceptCell.GetValue <string>(); var value = valueCell.Value; var period = startDateCell.Value == null || string.IsNullOrEmpty(startDateCell.Value.ToString()) ? new InstantPeriod(dateOrEndDateCell.GetValue <DateTime>()) : (Period) new DurationPeriod(startDateCell.GetValue <DateTime>(), dateOrEndDateCell.GetValue <DateTime>()); var conceptName = ToXName(concept, xDeclarationsHolder); var fact = new Fact(conceptName, wsi, period) { Unit = etbUnit, Value = value.ToString(), BalanceMethod = BalanceMethod.Algebraic }; AddExplicitMembers(fact, explicitMembersCell.Value, xDeclarationsHolder); Instance.Facts.Add(fact); conceptCell = conceptCell.Offset(1, 0); valueCell = valueCell.Offset(1, 0); startDateCell = startDateCell.Offset(1, 0); dateOrEndDateCell = dateOrEndDateCell.Offset(1, 0); explicitMembersCell = explicitMembersCell.Offset(1, 0); } }
public void Slice() { // Arrange var entity = new Entity { IdentifierScheme = new Uri("http://www.sec.gov/CIK"), Identifier = "WSI", Id = "wsi", Name = "Walia Steel Industry PLC" }; var unit = new CurrencyUnit("CHF"); var duration1 = new DurationPeriod(new DateTime(2017, 1, 1), new DateTime(2017, 12, 31)); var instant1Start = new InstantPeriod(new DateTime(2016, 12, 31)); var duration2 = new DurationPeriod(new DateTime(2018, 1, 1), new DateTime(2018, 12, 31)); var concept1 = new Item { Name = "concept1" }; var duration1Fact = new Fact(concept1.Name, entity, duration1) { Unit = unit, Value = "2017", BalanceMethod = BalanceMethod.Algebraic }; var instant1StartFact = new Fact(concept1.Name, entity, instant1Start) { Unit = unit, Value = "2017.1", BalanceMethod = BalanceMethod.Algebraic }; var duration2Fact = new Fact(concept1.Name, entity, duration2) { Unit = unit, Value = "2018", BalanceMethod = BalanceMethod.Algebraic }; var facts = new[] { duration1Fact, instant1StartFact, duration2Fact }; var factSet = new FactSet(facts); var duration1Aspect = new PeriodAspect(duration1); var instant1StartAspect = new PeriodAspect(instant1Start); var duration1Member = new Member(duration1Aspect); duration1Member.RelatedAspects.Add(new RelatedAspect(instant1StartAspect, RelatedAspectRoles.PeriodStart)); // Act var slicedFactSetIncludingRelatedAspects = factSet.Slice(duration1Member, true); var slicedFactSetExcludingRelatedAspects = factSet.Slice(duration1Member, false); // Assert Assert.AreEqual(facts.Length, factSet.FactModels.Count); Assert.AreEqual(2, slicedFactSetIncludingRelatedAspects.FactModels.Count); Assert.AreEqual(1, slicedFactSetExcludingRelatedAspects.FactModels.Count); }
private Instance LoadInstanceFromExcelDocument(string fileName) { XNamespace bSharpNamespace = "http://banan-it.com/taxonomy/2018-07-05/bsharp"; XNamespace ifrsNamespace = "http://xbrl.ifrs.org/taxonomy/2017-03-09/ifrs-full"; var xDeclarationsHolder = new XElement("dummy", new XAttribute(XNamespace.Xmlns + "ifrs-full", ifrsNamespace), new XAttribute(XNamespace.Xmlns + "banan", bSharpNamespace)); var instance = new Instance(); var etbUnit = new CurrencyUnit("ETB"); instance.Units.Add(etbUnit); var quarter1Of2018 = new DurationPeriod(new DateTime(2018, 1, 1), new DateTime(2018, 3, 31)); var startOfQuarter1Of2018 = new InstantPeriod(new DateTime(2017, 12, 31)); var endOfQuarter1Of2018 = new InstantPeriod(new DateTime(2018, 3, 31)); instance.Periods.Add(quarter1Of2018); instance.Periods.Add(startOfQuarter1Of2018); instance.Periods.Add(endOfQuarter1Of2018); var wsi = new Entity { Id = "wsi", IdentifierScheme = new Uri("http://www.sec.gov/CIK"), Identifier = "WSI", Name = "Walia Steel Industry PLC" }; instance.Entities.Add(wsi); var package = new ExcelPackage(new FileInfo(fileName)); var worksheet = package.Workbook.Worksheets[1]; ExcelRangeBase conceptCell = worksheet.Cells["B2"]; ExcelRangeBase valueCell = worksheet.Cells["C2"]; ExcelRangeBase startDateCell = worksheet.Cells["D2"]; ExcelRangeBase dateOrEndDateCell = worksheet.Cells["E2"]; ExcelRangeBase explicitMembersCell = worksheet.Cells["F2"]; while (conceptCell.Value != null && valueCell.Value != null) { var concept = conceptCell.GetValue <string>(); var value = valueCell.Value; var period = startDateCell.Value == null || string.IsNullOrEmpty(startDateCell.Value.ToString()) ? new InstantPeriod(dateOrEndDateCell.GetValue <DateTime>()) : (Period) new DurationPeriod(startDateCell.GetValue <DateTime>(), dateOrEndDateCell.GetValue <DateTime>()); var conceptName = ToXName(concept, xDeclarationsHolder); var fact = new Fact(conceptName, wsi, period) { Unit = etbUnit, Value = value.ToString(), BalanceMethod = BalanceMethod.Algebraic }; AddExplicitMembers(fact, explicitMembersCell.Value, xDeclarationsHolder); instance.Facts.Add(fact); conceptCell = conceptCell.Offset(1, 0); valueCell = valueCell.Offset(1, 0); startDateCell = startDateCell.Offset(1, 0); dateOrEndDateCell = dateOrEndDateCell.Offset(1, 0); explicitMembersCell = explicitMembersCell.Offset(1, 0); } return(instance); }
private string VerboseInstantPeriod(InstantPeriod instantPeriod, IFormatProvider formatProvider) { return(instantPeriod.Date.ToString("d", formatProvider)); }