예제 #1
0
        public async Task Init(CancellationToken cancellationToken)
        {
            _log.Debug("MS SQL source schema init.");
            var sourceInfo = Task.Run <Tuple <string, string> >(() => {
                using (var uow = _uowFactory.GetUnitOfWork())
                {
                    return(new Tuple <string, string>(uow.Database, uow.DataSource));
                }
            });

            _log.DebugFormat("Connected to {0}\\{1}", sourceInfo.Result.Item2, sourceInfo.Result.Item1);

            _log.Debug("Getting metadata...");
            var dTables  = _objectMetaDataProvider.GetDependentTables(cancellationToken);
            var MetaData = GetMetaData(new MetaDataInitializer(), cancellationToken);
            await Task.WhenAll(dTables, MetaData, sourceInfo);

            _log.Debug("Done");
            _log.DebugFormat("FKs: {0}", dTables.Result.Count());
            _log.DebugFormat("Tables: {0}", MetaData.Result.Count());

            _dependentTables = dTables.Result;
            _tables          = MetaData.Result;
            _database        = sourceInfo.Result.Item1;
            _dataSource      = sourceInfo.Result.Item2;

            WasInit = true;
        }
예제 #2
0
 public Task <IEnumerable <PDependentTable> > GetDependentTables(string tableName, CancellationToken cancellationToken)
 {
     return(_objectMetaProvider.GetDependentTables(tableName, cancellationToken));
 }