Пример #1
0
        private List <MappedTable> ParseMappedTablesOutsideFromConfig()
        {
            var mappedTablesOutside = new List <MappedTable>();

            if (TableConfig.PairedColumnsOutsideTable.Count != 0 && (TableConfig.PairedColumnsOutsideTable.First().ColumnMapping.Count == 0))
            {
                return(mappedTablesOutside);
            }

            for (int i = 0; i < TableConfig.PairedColumnsOutsideTable.Count; i++)
            {
                var mappedTableOutsideConfig = TableConfig.PairedColumnsOutsideTable[i];
                var mappedTable = new MappedTable
                {
                    // columns that will have to same value in the source and dest. table
                    SourceDestPairedColumnsOutside = mappedTableOutsideConfig.ColumnMapping.Select(m => new ColumnPair(m[0], m[1])).ToList()
                };

                var columnMapping = new List <MappedColumnPair>();
                for (int j = 0; j < mappedTableOutsideConfig.SourceDestMapping.Count; j++)
                {
                    var columnMappingConfig = mappedTableOutsideConfig.SourceDestMapping[j];
                    if (j == 0)
                    {
                        columnMapping.Add(new MappedColumnPair
                        {
                            SourceConnectionString      = DatabaseConfig.ConnectionString,
                            SourceFullTableName         = TableConfig.FullTableName,
                            DestinationConnectionString = columnMappingConfig.DestinationConnectionString,
                            DestinationFullTableName    = columnMappingConfig.DestinationFullTableName,
                            DestinationInstance         = columnMappingConfig.DestinationLinkedInstance,
                            MappedColumns = columnMappingConfig.ForeignKeyMapping.Select(m => new ColumnPair(m[0], m[1])).ToList()
                        });
                    }
                    else
                    {
                        var previousColumnMappingConfig = mappedTableOutsideConfig.SourceDestMapping[j - 1];
                        columnMapping.Add(new MappedColumnPair
                        {
                            SourceConnectionString      = previousColumnMappingConfig.DestinationConnectionString,
                            SourceFullTableName         = previousColumnMappingConfig.DestinationFullTableName,
                            SourceInstance              = previousColumnMappingConfig.DestinationLinkedInstance,
                            DestinationConnectionString = columnMappingConfig.DestinationConnectionString,
                            DestinationFullTableName    = columnMappingConfig.DestinationFullTableName,
                            DestinationInstance         = columnMappingConfig.DestinationLinkedInstance,
                            MappedColumns = columnMappingConfig.ForeignKeyMapping.Select(m => new ColumnPair(m[0], m[1])).ToList()
                        });
                    }
                }

                mappedTable.MappedColumnPairsOutside = columnMapping;

                mappedTablesOutside.Add(mappedTable);
            }

            return(mappedTablesOutside);
        }
Пример #2
0
        DbArchiveRecord InsertReference(MappedTable <DbArchiveRecord> table, IReferenceJson reference, DateTime lastFetchedUtc)
        {
            DbArchiveRecord archiveRecord = new DbArchiveRecord();

            archiveRecord.Id             = reference.Id;
            archiveRecord.LastFetchedUtc = lastFetchedUtc;
            archiveRecord.Json           = reference.RawJson;
            Mapper.InsertRecord(table, archiveRecord, SQLiteConflictResolution.Replace);
            return(archiveRecord);
        }