コード例 #1
0
        public MigrationsOperations(
            [NotNull] ILoggerProvider loggerProvider,
            [NotNull] string assemblyName,
            [NotNull] string startupAssemblyName,
            [CanBeNull] string environment,
            [NotNull] string projectDir,
            [NotNull] string rootNamespace)
        {
            Check.NotNull(loggerProvider, nameof(loggerProvider));
            Check.NotEmpty(assemblyName, nameof(assemblyName));
            Check.NotEmpty(startupAssemblyName, nameof(startupAssemblyName));
            Check.NotNull(projectDir, nameof(projectDir));
            Check.NotNull(rootNamespace, nameof(rootNamespace));

            var loggerFactory = new LoggerFactory();
            loggerFactory.AddProvider(loggerProvider);

            _loggerProvider = loggerProvider;
            _logger = new LazyRef<ILogger>(() => loggerFactory.CreateCommandsLogger());
            _projectDir = projectDir;
            _rootNamespace = rootNamespace;
            _contextOperations = new DbContextOperations(
                loggerProvider,
                assemblyName,
                startupAssemblyName,
                environment);

            var startup = new StartupInvoker(startupAssemblyName, environment);
            _servicesBuilder = new DesignTimeServicesBuilder(startup);
        }
コード例 #2
0
        public void ConfigureDesignTimeServices_is_noop_when_not_found()
        {
            var startup = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                environment: "Unknown");

            startup.ConfigureDesignTimeServices(new ServiceCollection());
        }
コード例 #3
0
        public void ConfigureDesignTimeServices_is_noop_when_not_found()
        {
            var startup = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                environment: "Unknown");

            startup.ConfigureDesignTimeServices(new ServiceCollection());
        }
コード例 #4
0
        public void ConfigureServices_is_noop_when_not_found()
        {
            var startup = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                environment: "Unknown");

            var services = startup.ConfigureServices();

            Assert.NotNull(services);
        }
コード例 #5
0
        public void ConfigureServices_is_noop_when_not_found()
        {
            var startup = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                environment: "Unknown");

            var services = startup.ConfigureServices();

            Assert.NotNull(services);
        }
コード例 #6
0
        public void ConfigureServices_invokes_static_methods()
        {
            var startup = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                "Static");

            var services = startup.ConfigureServices();

            var service = services.GetRequiredService<TestService>();
            Assert.Equal("Static", service.Value);
        }
コード例 #7
0
        public void ConfigureServices_uses_Development_environment_when_unspecified()
        {
            var startup = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                environment: null);

            var services = startup.ConfigureServices();

            var service = services.GetRequiredService<TestService>();
            Assert.Equal("Development", service.Value);
        }
コード例 #8
0
        public void ConfigureServices_uses_Development_environment_when_unspecified()
        {
            var startup = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                environment: null);

            var services = startup.ConfigureServices();

            var service = services.GetRequiredService <TestService>();

            Assert.Equal("Development", service.Value);
        }
コード例 #9
0
        public void ConfigureServices_invokes_static_methods()
        {
            var startup = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                "Static");

            var services = startup.ConfigureServices();

            var service = services.GetRequiredService <TestService>();

            Assert.Equal("Static", service.Value);
        }
コード例 #10
0
        public void ConfigureServices_invokes_method_with_alternative_signature()
        {
            var startup = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                "Alternative");

            var services = startup.ConfigureServices();

            var service = services.GetRequiredService <TestService>();

            Assert.Equal("Alternative", service.Value);
        }
コード例 #11
0
        public void ConfigureDesignTimeServices_invokes_static_methods()
        {
            var services = new ServiceCollection();
            var startup = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                "Static");

            startup.ConfigureDesignTimeServices(services);

            var service = services.BuildServiceProvider().GetRequiredService<TestService>();
            Assert.Equal("Static", service.Value);
        }
コード例 #12
0
        public void ConfigureDesignTimeServices_uses_Development_environment_when_unspecified()
        {
            var services = new ServiceCollection();
            var startup = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                environment: null);

            startup.ConfigureDesignTimeServices(services);

            var service = services.BuildServiceProvider().GetRequiredService<TestService>();
            Assert.Equal("Development", service.Value);
        }
コード例 #13
0
        public void ConfigureDesignTimeServices_invokes_static_methods()
        {
            var services = new ServiceCollection();
            var startup  = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                "Static");

            startup.ConfigureDesignTimeServices(services);

            var service = services.BuildServiceProvider().GetRequiredService <TestService>();

            Assert.Equal("Static", service.Value);
        }
コード例 #14
0
        public void ConfigureDesignTimeServices_uses_Development_environment_when_unspecified()
        {
            var services = new ServiceCollection();
            var startup  = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                environment: null);

            startup.ConfigureDesignTimeServices(services);

            var service = services.BuildServiceProvider().GetRequiredService <TestService>();

            Assert.Equal("Development", service.Value);
        }
コード例 #15
0
        public void ConfigureDesignTimeServices_works_on_other_types()
        {
            var services = new ServiceCollection();
            var startup  = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                environment: null);

            startup.ConfigureDesignTimeServices(typeof(NotStartup), services);

            var service = services.BuildServiceProvider().GetRequiredService <TestService>();

            Assert.Equal("NotStartup", service.Value);
        }
コード例 #16
0
        public DbContextOperations(
            [NotNull] ILoggerProvider loggerProvider,
            [NotNull] string assemblyName,
            [NotNull] string startupAssemblyName,
            [CanBeNull] string environment)
        {
            Check.NotNull(loggerProvider, nameof(loggerProvider));
            Check.NotEmpty(assemblyName, nameof(assemblyName));
            Check.NotEmpty(startupAssemblyName, nameof(startupAssemblyName));

            _loggerProvider = loggerProvider;
            _assemblyName = assemblyName;
            _startupAssemblyName = startupAssemblyName;
            _logger = new LazyRef<ILogger>(() => _loggerProvider.CreateCommandsLogger());

            var startup = new StartupInvoker(startupAssemblyName, environment);
            _runtimeServices = startup.ConfigureServices();
        }
コード例 #17
0
        public DatabaseOperations(
            [NotNull] ILoggerProvider loggerProvider,
            [NotNull] string assemblyName,
            [NotNull] string startupAssemblyName,
            [CanBeNull] string environment,
            [NotNull] string projectDir,
            [NotNull] string rootNamespace)
        {
            Check.NotNull(loggerProvider, nameof(loggerProvider));
            Check.NotEmpty(assemblyName, nameof(assemblyName));
            Check.NotEmpty(startupAssemblyName, nameof(startupAssemblyName));
            Check.NotNull(projectDir, nameof(projectDir));
            Check.NotNull(rootNamespace, nameof(rootNamespace));

            _loggerProvider = loggerProvider;
            _projectDir = projectDir;
            _rootNamespace = rootNamespace;

            var startup = new StartupInvoker(startupAssemblyName, environment);
            _servicesBuilder = new DesignTimeServicesBuilder(startup);
        }
コード例 #18
0
 public DesignTimeServicesBuilder(
     [NotNull] StartupInvoker startupInvoker)
 {
     _startup = startupInvoker;
 }
コード例 #19
0
        public void ConfigureDesignTimeServices_works_on_other_types()
        {
            var services = new ServiceCollection();
            var startup = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                environment: null);

            startup.ConfigureDesignTimeServices(typeof(NotStartup), services);

            var service = services.BuildServiceProvider().GetRequiredService<TestService>();
            Assert.Equal("NotStartup", service.Value);
        }
コード例 #20
0
        public void ConfigureServices_invokes_method_with_alternative_signature()
        {
            var startup = new StartupInvoker(
                typeof(StartupInvokerTest).Assembly.FullName,
                "Alternative");

            var services = startup.ConfigureServices();

            var service = services.GetRequiredService<TestService>();
            Assert.Equal("Alternative", service.Value);
        }
コード例 #21
0
 public DesignTimeServicesBuilder(
     [NotNull] StartupInvoker startupInvoker)
 {
     _startup = startupInvoker;
 }