//Get as of date information private void GetInstantDateInformation() { var elements = instanceElement.ElementsByLocalName("Assets|AssetsCurrent|LiabilitiesAndStockholdersEquity").Where(e => e.Attribute("contextRef") != null); var contextList = elements.Select(e => contexts[e.Attribute("contextRef").Value]).Distinct().Where(c => c.ExplicitMember == null && c.EndDate == DocumentPeriodEndDate && c.Type == "instant"); instantContext = contextList.LastOrDefault(); }
private void LoadContexts() { contexts = instanceElement.ElementsByLocalName("context").Select( e => { Context context = new Context(e); return new KeyValuePair<string, Context>(context.Id, context); } ).ToDictionary(kv => kv.Key, kv => kv.Value); }
private void GetDurationDateInformation() { var elements = instanceElement.ElementsByLocalName("CashAndCashEquivalentsPeriodIncreaseDecrease|CashPeriodIncreaseDecrease|NetIncomeLoss|DocumentPeriodEndDate").Where(e => e.Attribute("contextRef") != null); var contextList = elements.Select(e => contexts[e.Attribute("contextRef").Value]).Distinct().Where(c => c.ExplicitMember == null && c.EndDate == DocumentPeriodEndDate && c.Type == "duration"); DateTime startDate = DateTime.MaxValue; foreach (Context context in contextList) { if (context.StartDate < startDate) // && (context.EndDate.Month - context.StartDate.Month < 4 || DocumentType == "10-K") { startDate = context.StartDate; durationContext = context; } } }