private static void ImportLineItems(IEnumerable<XbrlInstance> allFiles) { List<string> fields = new List<string>() { "Name", "Amount", "DisplayOrder", "NodeNameInFile", "Type", "IsMapped", "FileImportId", "ImportId" }; List<string> fieldsDataType = new List<string>() { "[varchar](300)", "[money]", "[int]", "[varchar](300)", "[varchar](20)", "bit", "[varchar] (50)", "[varchar](350)" }; DBDataView XbrlLineItemWriter = new DBDataView("ImportId", fields, fieldsDataType); DataTable table = new DataTable(); foreach (string f in fields) table.Columns.Add(f); foreach (XbrlInstance file in allFiles) { foreach (Fact fact in file.AllFacts) { string nodeName = fact.ItemName; string lineItemName = nodeName; bool isMapped = false; //if (XbrlLineItems.LineItemsMappings.ContainsKey(nodeName)) //{ // lineItemName = XbrlLineItems.LineItemsMappings[nodeName]; // isMapped = true; //} DataRow row = table.NewRow(); row["Name"] = lineItemName; decimal amount; Decimal.TryParse(fact.Value.ToString(), out amount); row["Amount"] = amount; row["DisplayOrder"] = 0; row["NodeNameInFile"] = nodeName; row["Type"] = fact.Type; row["IsMapped"] = isMapped; row["FileImportId"] = String.Format("{0}_{1}_{2}", file.EntityCentralIndexKey, file.DocumentPeriodEndDate.ToShortDateString().Replace("/", ""), file.DocumentType); row["ImportId"] = String.Format("{0}_{1}_{2}_{3}", file.EntityCentralIndexKey, file.DocumentPeriodEndDate.ToShortDateString().Replace("/", ""), file.DocumentType, nodeName); table.Rows.Add(row); } } XbrlLineItemWriter.BulkUpsert("XBRLLineItems", table); }
private static void ImportFilesInformation(IEnumerable<XbrlInstance> allFiles) { List<string> fields = new List<string>() { "CIK", "Ticker", "DocumentType", "DurationDataStartDate", "DocumentPeriodEndDate", "ImportId" }; DBDataView XbrlFileWriter = new DBDataView("ImportId", fields, new List<string>() { "[varchar](50)", "[varchar](20)", "[varchar](10)", "[datetime]", "[datetime]", "[varchar](50)" }); DataTable table = new DataTable(); foreach (string f in fields) table.Columns.Add(f); var FileInfoTable = allFiles.Select( f => { DataRow row = table.NewRow(); row["CIK"] = f.EntityCentralIndexKey; row["Ticker"] = f.TradingSymbol != null ? f.TradingSymbol.ToUpper() : ""; row["DocumentType"] = f.DocumentType; row["DurationDataStartDate"] = f.DurationDataStartDate; row["DocumentPeriodEndDate"] = f.DocumentPeriodEndDate; row["ImportId"] = String.Format("{0}_{1}_{2}", f.EntityCentralIndexKey, f.DocumentPeriodEndDate.ToShortDateString().Replace("/", ""), f.DocumentType); return row; } ).CopyToDataTable(); XbrlFileWriter.BulkUpsert("XBRLFiles", FileInfoTable); }
private static void ImportTickerCIK(List<string[]> tickerCIK) { List<string> fields = new List<string>() { "CIK", "Ticker" }; DBDataView tickerWriter = new DBDataView("CIK", fields, new List<string>() { "[varchar](20)", "[varchar](50)" }); DataTable table = new DataTable(); foreach (string f in fields) table.Columns.Add(f); var tickerTable = tickerCIK.Select( t => { DataRow row = table.NewRow(); row["Ticker"] = t[0]; row["CIK"] = t[1]; return row; } ).CopyToDataTable(); tickerWriter.BulkUpsert("TickerCIK", tickerTable); }