コード例 #1
0
        public void ReflectingMetadata()
        {
            DefaultConfigurationService service = GenerateService();

            TestConfiguration configuration =
                service.GetConfiguration <TestConfiguration, TestConfigurationMetadata>();

            CheckConfiguration(configuration);
        }
コード例 #2
0
        public void ReflectingMetadataStream()
        {
            DefaultConfigurationService service = GenerateService();

            TestConfigurationStream configuration =
                service.GetConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>();

            CheckConfigurationStream(configuration);
        }
コード例 #3
0
        private static DefaultConfigurationService GenerateService()
        {
            Json jsonSerializer = new Json();
            MemoryCachingService      cachingService = new MemoryCachingService(TimeSpan.FromDays(1), false);
            DefaultConfigurationCache cache          = new DefaultConfigurationCache(cachingService,
                                                                                     jsonSerializer, TimeSpan.FromDays(1));
            DefaultConfigurationService service = new DefaultConfigurationService(cache);

            return(service);
        }
コード例 #4
0
        public void ProvidingMetadata()
        {
            DefaultConfigurationService service = GenerateService();

            TestConfigurationMetadata metadata      = new TestConfigurationMetadata();
            TestConfiguration         configuration =
                service.GetConfiguration <TestConfiguration, TestConfigurationMetadata>(metadata);

            CheckConfiguration(configuration);
        }
コード例 #5
0
        public void CachingStream()
        {
            DefaultConfigurationService service = GenerateService();

            TestConfigurationStream configuration1 =
                service.GetConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>();
            TestConfigurationStream configuration2 =
                service.GetConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>();

            CheckConfigurationStream(configuration1, configuration2);
        }
コード例 #6
0
        public void Caching()
        {
            DefaultConfigurationService service = GenerateService();

            TestConfiguration configuration1 =
                service.GetConfiguration <TestConfiguration, TestConfigurationMetadata>();
            TestConfiguration configuration2 =
                service.GetConfiguration <TestConfiguration, TestConfigurationMetadata>();

            CheckConfiguration(configuration1, configuration2);
        }
コード例 #7
0
        public void CompleteCacheClearing()
        {
            DefaultConfigurationService service = GenerateService();

            TestConfiguration configuration1 =
                service.GetConfiguration <TestConfiguration, TestConfigurationMetadata>();

            service.ResetCachedConfigurations();
            TestConfiguration configuration2 =
                service.GetConfiguration <TestConfiguration, TestConfigurationMetadata>();

            CheckConfiguration(configuration1);
            CheckConfiguration(configuration2);
            Assert.Throws <EqualException>(() => Assert.Equal(configuration1, configuration2));
        }
コード例 #8
0
        public void SpecificCacheClearingStream()
        {
            DefaultConfigurationService service = GenerateService();

            TestConfigurationStream configuration1 =
                service.GetConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>();

            service.ClearConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>();
            TestConfigurationStream configuration2 =
                service.GetConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>();

            CheckConfigurationStream(configuration1);
            CheckConfigurationStream(configuration2);
            Assert.Throws <EqualException>(() => Assert.Equal(configuration1, configuration2));
        }
        public static void Configure()
        {
            // http://code.google.com/p/autofac/wiki/MvcIntegration
            var builder = new ContainerBuilder();

            builder.RegisterControllers(Assembly.GetExecutingAssembly());

            builder.Register(c => new DefaultConfigurationService()).As <IConfigurationService>().InstancePerDependency();
            builder.Register(c => new DefaultDataService()).As <IDataService>().InstancePerDependency();
            builder.Register(c => new DefaultCacheService()).As <ICacheService>().InstancePerDependency();

            // Enable the desired mail service (not by type name but by friendly name)
            string selectedMailService = new DefaultConfigurationService().MailService;

            if ("sendgrid" == selectedMailService)
            {
                builder.Register(c => new SendGridMailService(c.Resolve <IConfigurationService>()))
                .As <IMailService>().InstancePerDependency();
            }
            else if ("smtp" == selectedMailService)
            {
                builder.Register(c => new SmtpMailService(c.Resolve <IConfigurationService>()))
                .As <IMailService>().InstancePerDependency();
            }
            else
            {
                builder.Register(c => new DevStubMailService()).As <IMailService>().InstancePerDependency();
            }


            builder.Register(c => new DefaultTranslationService(c.Resolve <IDataService>(),
                                                                c.Resolve <ICacheService>(),
                                                                c.Resolve <IMailService>(),
                                                                c.Resolve <IConfigurationService>()))
            .As <ITranslationService>().InstancePerDependency();

            // MVC
            IContainer container = builder.Build();

            System.Web.Mvc.DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

            // Web API
            var resolver = new Autofac.Integration.WebApi.AutofacWebApiDependencyResolver(container);

            System.Web.Http.GlobalConfiguration.Configuration.DependencyResolver = resolver;
        }
コード例 #10
0
        static void Main(string[] args)
        {
            Trace.Listeners.Add(new ConsoleTraceListener());

            foreach (var assembly in typeof(PackageProcessor).Assembly.GetReferencedAssemblies())
            {
                Trace.WriteLine(assembly.FullName);
            }

            var cancelSource = new CancellationTokenSource();

            System.Console.CancelKeyPress += (o, e) =>
            {
                cancelSource.Cancel();
                e.Cancel = true;
            };

            var shutdownWatcher = new WebJobsShutdownWatcher();
            var shutdownSource  = CancellationTokenSource.CreateLinkedTokenSource(new[]
            {
                shutdownWatcher.Token,
                cancelSource.Token
            });

            var configuration = new DefaultConfigurationService();
            var builder       = new ContainerBuilder();

            DefaultContainerBuilder.Register(builder, configuration);
            SupportContainerBuilder.Register(builder, SupportEnvironment.WebJob);
            EmailContainerBuilder.Register(builder);
            PackageProcessorContainerBuilder.Register(builder);

            var container = builder.Build();

            var support = container.Resolve <ISupportConfiguration>();

            if (!string.IsNullOrWhiteSpace(support.InsightsInstrumentationKey))
            {
                TelemetryConfiguration.Active.InstrumentationKey = support.InsightsInstrumentationKey;
            }

            var scheduler = container.Resolve <ISchedulerService>();

            scheduler.ListenAndProcess(shutdownSource.Token);
        }
コード例 #11
0
ファイル: SymbolSource.cs プロジェクト: Strimy/SymbolSource
        protected override void OnStart(string[] args)
        {
            Trace.Listeners.Add(new ConsoleTraceListener());

            foreach (var assembly in typeof(PackageProcessor).Assembly.GetReferencedAssemblies())
            {
                Trace.WriteLine(assembly.FullName);
            }

            _stopSource = new CancellationTokenSource();


            var configuration = new DefaultConfigurationService();
            var builder       = new ContainerBuilder();

            DefaultContainerBuilder.Register(builder, configuration);
            SupportContainerBuilder.Register(builder, SupportEnvironment.WebJob);
            PackageProcessorContainerBuilder.Register(builder);

            var container = builder.Build();

            var support = container.Resolve <ISupportConfiguration>();

            var scheduler = container.Resolve <ISchedulerService>();

            Task.Run(() =>
            {
                int i = 0;
                while (!_stopSource.IsCancellationRequested)
                {
                    try
                    {
                        scheduler.ListenAndProcess(_stopSource.Token);
                    }
                    catch
                    {
                        i++;
                        if (i > 10)
                        {
                            Stop();
                        }
                    }
                }
            });
        }
コード例 #12
0
        public void ProvidingMetadataStream()
        {
            DefaultConfigurationService service = GenerateService();

            TestConfigurationMetadataStream metadata      = new TestConfigurationMetadataStream();
            TestConfigurationStream         configuration =
                service.GetConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>(metadata);

            Assert.True(metadata.UsedAtLeastOnce);
            CheckConfigurationStream(configuration);

            service.ResetCachedConfigurations();
            TestConfigurationStream configuration2 =
                service.GetConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>(metadata);

            CheckConfigurationStream(configuration2);
            Assert.NotEqual(configuration, configuration2);
            Assert.True(metadata.UsedAtLeastOnce);
            Assert.True(metadata.StreamGotDisposed);
        }
コード例 #13
0
        public void SpecificCacheClearingMultiple()
        {
            DefaultConfigurationService service = GenerateService();

            TestConfiguration configuration1 =
                service.GetConfiguration <TestConfiguration, TestConfigurationMetadata>();
            TestConfiguration2 configurationt1 =
                service.GetConfiguration <TestConfiguration2, TestConfigurationMetadata2>();

            service.ClearConfiguration <TestConfiguration, TestConfigurationMetadata>();
            TestConfiguration configuration2 =
                service.GetConfiguration <TestConfiguration, TestConfigurationMetadata>();
            TestConfiguration2 configurationt2 =
                service.GetConfiguration <TestConfiguration2, TestConfigurationMetadata2>();

            CheckConfiguration(configuration1);
            CheckConfiguration(configuration2);
            Assert.Throws <EqualException>(() => Assert.Equal(configuration1, configuration2));
            CheckConfiguration2(configurationt1, configurationt2);
        }
コード例 #14
0
        async Task PerformAsyncInitializationsAsync()
        {
            string customDbToKeep = String.Empty;
            bool wasDatabaseCopied = await ReferenceDataContext.CopyDatabaseAsync().ConfigureAwait(continueOnCapturedContext: false);

            IConfigurationService cfgSvc = new DefaultConfigurationService();

            // Database will be copied only if a new version of the app was installed (which shipped with a new version of the database)
            if (wasDatabaseCopied)
            {
                cfgSvc.CustomReferenceDatabaseName = String.Empty;
                cfgSvc.UsingDefaultReferenceDatabase = true;
                cfgSvc.ReferenceDatabaseBuildDate = ReferenceDataContext.ReferenceDatabaseBuildDate;
            }
            else
            {
                customDbToKeep = cfgSvc.CustomReferenceDatabaseName;
            }

            await ReferenceDataContext.DeletePreviousDatabasesAsync(customDbToKeep).ConfigureAwait(continueOnCapturedContext: false);
            await RuntimeDataContext.InitializeDatabaseAsync().ConfigureAwait(continueOnCapturedContext: false);
            await ReviewNotification.InitializeAsync().ConfigureAwait(continueOnCapturedContext: false);
        }