void GetFactNamespace() { if (string.IsNullOrEmpty(FactNamespace)) { var fact = Facts.FirstOrDefault(); if (fact != null) { var ns = fact.Metric.Namespace; if (string.IsNullOrEmpty(ns)) { var idx = fact.Metric.Name.IndexOf(':'); if (idx != -1) { var prefix = fact.Metric.Name.Substring(idx); ns = Namespaces.LookupNamespace(prefix); } } FactNamespace = ns; } } }
public void LoadLogicalData() { this.FactDictionary.SetInstance(this); this.TaxonomyModuleReference = this.SchemaRef.Href; this.FilingIndicators = this.XbrlFilingIndicators.Select(i => { var find = new LogicalModel.FilingIndicator(); find.ID = i.Value; find.Filed = i.Filed; return(find); }).ToList(); var lastfactpartid = Taxonomy.CounterFactParts.Keys.Max(); var ix = 0; foreach (var xbrlfact in XbrlFacts) { //var instancecontext = this.Contexts.Items[xbrlfact.ContextRef]; var logicalfact = new LogicalModel.InstanceFact(); logicalfact.IX = ix; ix++; logicalfact.UnitID = xbrlfact.UnitRef; logicalfact.ContextID = xbrlfact.ContextRef; logicalfact.ID = xbrlfact.ID; logicalfact.Decimals = String.IsNullOrEmpty(xbrlfact.Decimals) ? "" : xbrlfact.Decimals; var factstring = ""; factstring = String.Format("{0},", xbrlfact.Concept); var factparts = new List <String>(); factparts.Add(xbrlfact.Concept); var conceptid = GetPartID(xbrlfact.Concept); var factids = new List <int>(); factids.Add(conceptid); var factkey = factstring; logicalfact.Concept = new LogicalModel.Concept(); logicalfact.Concept.Content = xbrlfact.Concept; logicalfact.Value = xbrlfact.Value; this.FactDictionary.AddFact(logicalfact); this.Facts.Add(logicalfact); } Logger.WriteLine(String.Format("Instance has {0} facts", this.Facts.Count)); XbrlFacts.Clear(); var miconceptfact = Facts.FirstOrDefault(i => i.Concept.Name.StartsWith("mi")); if (miconceptfact != null) { var micontext = Contexts.Items[miconceptfact.ContextID]; var miunit = Units.FirstOrDefault(i => i.ID == miconceptfact.UnitID); if (miunit != null) { var measurestring = miunit.Measure.Content.ToLower(); var taxunit = Taxonomy.Units.FirstOrDefault(i => i.Measure.Content.ToLower() == measurestring); ReportingMonetaryUnit = taxunit; } } if (Contexts.Items.Count > 0) { var firstcontext = Contexts.Items.Values.FirstOrDefault(); this.Entity = firstcontext.Entity; this.ReportingDate = firstcontext.Period.Instant; this.ReportingPeriod = firstcontext.Period; } SetCells(); SetExtensions(); SaveToJson(); }