예제 #1
0
        public CodeCoverage(string connectionString, string databaseName, string[] excludeFilter, bool logging, bool debugger, TraceControllerType traceType)
        {
            if (debugger)
            {
                Debugger.Launch();
            }

            _databaseName = databaseName;
            if (excludeFilter == null)
            {
                excludeFilter = new string[0];
            }

            _excludeFilter = excludeFilter.ToList();
            _logging       = logging;
            _debugger      = debugger;
            _traceType     = traceType;
            _database      = new DatabaseGateway(connectionString, databaseName);
            _source        = new DatabaseSourceGateway(_database);
        }
예제 #2
0
        public TraceController GetTraceController(DatabaseGateway gateway, string databaseName, TraceControllerType type)
        {
            switch (type)
            {
            case TraceControllerType.Azure:
                return(new AzureTraceController(gateway, databaseName));

            case TraceControllerType.Sql:
                return(new SqlTraceController(gateway, databaseName));
            }

            var source  = new DatabaseSourceGateway(gateway);
            var isAzure = source.IsAzure();

            if (!isAzure)
            {
                return(new SqlTraceController(gateway, databaseName));
            }

            var version = source.GetVersion();

            if (version < SqlServerVersion.Sql120)
            {
                throw  new Exception("SQL Azure is only supported from Version 12");
            }

            return(new AzureTraceController(gateway, databaseName));
        }