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);
        }