private void AddScanInfoTable(Scan scan)
 {
     using (var scanTable = DBFactory.GetMySqlDatabase().DataTableFromQueryString(Queries.Assets.SelectScanById(scan.ID)))
     {
         scanTable.TableName = ScansTable.TableName;
         SqliteFunctions.AddTableToScanDB(scanTable, ScansTable.Id, scan.ID);
     }
 }
 private void CachePingHistory(DbTransaction trans)
 {
     using (var results = DBFactory.GetMySqlDatabase().DataTableFromQueryString(Queries.Assets.SelectMaxPingHistory()))
     {
         results.TableName = PingHistoryTable.TableName;
         SetSubnets(results);
         SqliteFunctions.AddTableToScanDB(results, PingHistoryTable.Id, currentScan.ID, trans);
     }
 }
        private void CacheScanDetails(DataTable munisResults, string munisKeyColumn, DataTable assetResults, string assetKeyColumn, string scanId)
        {
            using (var trans = DBFactory.GetSqliteScanDatabase(scanId).StartTransaction())
            {
                // Add tables to Sqlite cache.
                SqliteFunctions.AddTableToScanDB(munisResults, munisKeyColumn, scanId, trans);
                SqliteFunctions.AddTableToScanDB(assetResults, assetKeyColumn, scanId, trans);
                CachePingHistory(trans);

                // Join the tables and add the result to the Sqlite cache.
                using (var cmd = DBFactory.GetSqliteScanDatabase(scanId).GetCommand(Queries.Sqlite.JoinAllAssetDetails()))
                    using (var allDetails = DBFactory.GetSqliteScanDatabase(scanId).DataTableFromCommand(cmd, trans))
                    {
                        allDetails.TableName = ItemDetailTable.TableName;
                        AddScanStatusColumns(allDetails);
                        SqliteFunctions.AddTableToScanDB(allDetails, MunisFixedAssetTable.Asset, scanId, trans);
                    }

                trans.Commit();
            }
        }