private static void Register(this IProfileRegistry registry, IEnumerable <ServiceDescriptor> descriptors)
 {
     foreach (var descriptor in descriptors)
     {
         registry.Register(descriptor);
     }
 }
Exemple #2
0
        private static void ConfigureInternalDependencies(IProfileRegistry registry, StartupParameters parameters)
        {
            registry.For <ISnsTopicCreator>().Use <SnsTopicCreator>();
            registry.For <ISnsSubscriptionCreator>().Use <SnsSubscriptionCreator>();

            registry.For <ITableAlarmCreator>().Use <TableAlarmCreator>();
            registry.For <IIndexAlarmCreator>().Use <IndexAlarmCreator>();
            registry.For <IAlarmFinder>().Use <AlarmFinder>();

            registry.For <IConfigLoader>().Use <ConfigLoader>();

            registry.For <IQueueAlarmCreator>().Use <QueueAlarmCreator>();

            var s3Location = GetS3Location(parameters);

            registry
            .For <ICloudformationStackDeployer>()
            .Use(ctx => new CloudformationStackDeployer(
                     ctx.GetInstance <IAlarmLogger>(),
                     ctx.GetInstance <IAmazonCloudFormation>(),
                     ctx.GetInstance <IAmazonS3>(),
                     s3Location
                     ));

            registry.For <IAlarmCreator>().Use <CloudFormationAlarmCreator>();
        }
Exemple #3
0
 private void Process(Type type, IProfileRegistry registry)
 {
     if (!type.IsAbstract && typeof(IHttpController).IsAssignableFrom(type))
     {
         registry.For(type).Use(type);
     }
 }
Exemple #4
0
 public static void Register(IProfileRegistry registry)
 {
     if (registry == null)
     {
         throw new ArgumentNullException(nameof(registry));
     }
 }
        public static void Register(IProfileRegistry registry)
        {
            if(registry == null)
                throw new ArgumentNullException("registry");

            registry.For<AuthenticationSection>().Singleton().Use(() => (AuthenticationSection) ConfigurationManager.GetSection("system.web/authentication"));
            registry.For<IConfigurationManager>().Singleton().Use<ConfigurationManagerWrapper>();
            registry.For<IFormsAuthentication>().Singleton().Use<FormsAuthenticationWrapper>();
            registry.For<IFormsAuthenticationModule>().Singleton().Use<FormsAuthenticationModuleWrapper>();
            registry.For<IHttpRuntime>().Singleton().Use<HttpRuntimeWrapper>();

            // Web
            registry.For<HttpApplicationState>().HybridHttpOrThreadLocalScoped().Use(() => HttpContext.Current.Application);
            registry.For<HttpApplicationStateBase>().HybridHttpOrThreadLocalScoped().Use<HttpApplicationStateWrapper>();
            registry.For<HttpContext>().HybridHttpOrThreadLocalScoped().Use(() => HttpContext.Current);
            registry.For<HttpContextBase>().HybridHttpOrThreadLocalScoped().Use<HttpContextWrapper>();
            registry.For<HttpRequest>().HybridHttpOrThreadLocalScoped().Use(() => HttpContext.Current.Request);
            registry.For<HttpRequestBase>().HybridHttpOrThreadLocalScoped().Use<HttpRequestWrapper>();
            registry.For<HttpResponse>().HybridHttpOrThreadLocalScoped().Use(() => HttpContext.Current.Response);
            registry.For<HttpResponseBase>().HybridHttpOrThreadLocalScoped().Use<HttpResponseWrapper>();
            registry.For<HttpServerUtility>().HybridHttpOrThreadLocalScoped().Use(() => HttpContext.Current.Server);
            registry.For<HttpServerUtilityBase>().HybridHttpOrThreadLocalScoped().Use<HttpServerUtilityWrapper>();
            registry.For<HttpSessionState>().HybridHttpOrThreadLocalScoped().Use(() => HttpContext.Current.Session);
            registry.For<HttpSessionStateBase>().HybridHttpOrThreadLocalScoped().Use<HttpSessionStateWrapper>();
        }
 private void Process(Type type, IProfileRegistry registry)
 {
     if (!type.IsAbstract && typeof (IHttpController).IsAssignableFrom(type))
     {
         registry.For(type).Use(type);
     }
 }
        public static void Configure(IProfileRegistry registry)
        {
            AddService <DBInstance, RdsSource, RdsAlarmDataProvider, ResourceConfig>(
                registry, WatchmanServiceConfigurationMapper.MapRds
                );

            AddService
            <AutoScalingGroup, AutoScalingGroupSource, AutoScalingGroupAlarmDataProvider, AutoScalingResourceConfig>(
                registry, WatchmanServiceConfigurationMapper.MapAutoScaling
                );

            AddService <Subnet, VpcSubnetSource, VpcSubnetAlarmDataProvider, ResourceConfig>(
                registry, WatchmanServiceConfigurationMapper.MapVpcSubnet
                );

            AddService <FunctionConfiguration, LambdaSource, LambdaAlarmDataProvider, ResourceConfig>(
                registry, WatchmanServiceConfigurationMapper.MapLambda
                );

            AddService <LoadBalancerDescription, ElbSource, ElbAlarmDataProvider, ResourceConfig>(
                registry, WatchmanServiceConfigurationMapper.MapElb
                );

            AddService <KinesisStreamData, KinesisStreamSource, KinesisStreamAlarmDataProvider, ResourceConfig>(
                registry, WatchmanServiceConfigurationMapper.MapStream
                );

            AddService <StateMachineListItem, StepFunctionSource, StepFunctionAlarmDataProvider, ResourceConfig>(
                registry, WatchmanServiceConfigurationMapper.MapStepFunction
                );

            AddService <TableDescription, TableDescriptionSource, DynamoDbDataProvider, ResourceConfig>(
                registry, WatchmanServiceConfigurationMapper.MapDynamoDb);
        }
 private static void RegisterInstances(this IProfileRegistry registry, IEnumerable <InstanceRegistration> registrations)
 {
     foreach (var registration in registrations)
     {
         registry.For(registration.ServiceType).Use(registration.Instance);
     }
 }
 private static void RegisterTypes(this IProfileRegistry registry, IEnumerable <TypeRegistration> registrations)
 {
     foreach (var registration in registrations)
     {
         registry.Register(registration);
     }
 }
Exemple #10
0
        public static void Configure(IProfileRegistry registry, StartupParameters parameters)
        {
            var region = AwsStartup.ParseRegion(parameters.AwsRegion);
            var creds  = AwsStartup.CredentialsWithFallback(
                parameters.AwsAccessKey, parameters.AwsSecretKey, parameters.AwsProfile);

            registry.For <IAmazonDynamoDB>()
            .Use(ctx => new AmazonDynamoDBClient(creds, new AmazonDynamoDBConfig {
                RegionEndpoint = region
            }));
            registry.For <IAmazonCloudWatch>()
            .Use(ctx => new AmazonCloudWatchClient(creds, new AmazonCloudWatchConfig {
                RegionEndpoint = region
            }));
            registry.For <IAmazonSimpleNotificationService>()
            .Use(ctx => new AmazonSimpleNotificationServiceClient(creds, new AmazonSimpleNotificationServiceConfig {
                RegionEndpoint = region
            }));
            registry.For <IAmazonRDS>()
            .Use(ctx => new AmazonRDSClient(creds, new AmazonRDSConfig {
                RegionEndpoint = region
            }));
            registry.For <IAmazonAutoScaling>()
            .Use(ctx => new AmazonAutoScalingClient(creds, region));
            registry.For <IAmazonCloudFormation>()
            .Use(ctx => new AmazonCloudFormationClient(creds, region));
            registry.For <IAmazonLambda>().Use(ctx => new AmazonLambdaClient(creds, region));
            registry.For <IAmazonEC2>().Use(ctx => new AmazonEC2Client(creds, region));
            registry.For <IAmazonElasticLoadBalancing>().Use(ctx => new AmazonElasticLoadBalancingClient(creds, region));
            registry.For <IAmazonS3>().Use(ctx => new AmazonS3Client(creds, region));
            registry.For <IAmazonStepFunctions>().Use(ctx => new AmazonStepFunctionsClient(creds, region));
        }
        private void Config(IProfileRegistry config, ITypeProvider typeProvider)
        {
            var largeMessageBodyTempPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), Guid.NewGuid().ToString());

            config.For<ILogger>()
                .Use<ConsoleLogger>()
                .Singleton();

            config.For<ILargeMessageBodyStore>()
                .Use(c => new FileSystemStorageBuilder().Configure()
                    .WithStorageDirectory(largeMessageBodyTempPath)
                    .WithLogger(c.GetInstance<ILogger>())
                    .Build())
                .Singleton();

            config.For<IBus>()
                .Use(c => new BusBuilder().Configure()
                    .WithNames("IntegrationTestHarness", Environment.MachineName)
                    .WithConnectionString(@"Endpoint=sb://shouldnotexist.example.com/;SharedAccessKeyName=IntegrationTestHarness;SharedAccessKey=borkborkbork=")
                    .WithLargeMessageStorage(sc => sc.WithLargeMessageBodyStore(c.GetInstance<ILargeMessageBodyStore>())
                        .WithMaxSmallMessageSize(50 * 1024)
                        .WithMaxLargeMessageSize(1024 * 1024))
                    .WithTypesFrom(typeProvider)
                    .WithDefaultTimeout(TimeSpan.FromSeconds(10))
                    .WithLogger(c.GetInstance<ILogger>())
                    .Build())
                .Singleton();
        }
Exemple #12
0
        private static void ConfigureLoggers(IProfileRegistry registry, StartupParameters parameters)
        {
            var fileSettings = new FileSettings(parameters.ConfigFolderLocation);
            var alarmLogger  = new ConsoleAlarmLogger(parameters.Verbose);
            var loadLogger   = new ConsoleConfigLoadLogger(parameters.Verbose);

            registry.For <FileSettings>().Use(fileSettings);
            registry.For <IAlarmLogger>().Use(alarmLogger);
            registry.For <IConfigLoadLogger>().Use(loadLogger);
        }
Exemple #13
0
        private void RefreshTable()
        {
            // TODO: how to get rid of infinite loop?
            // will use WatchDog class to optimize this.
            while (true)
            {
                IProfileRegistry registry = Program.Container.Resolve <IProfileRegistry>();
                if (registry == null)
                {
                    break;
                }

                IList <Variable> list = new List <Variable>();
                Thread.Sleep(Convert.ToInt32(textBoxRefresh.Text, CultureInfo.CurrentCulture) * 1000);
                NormalAgentProfile prof = registry.DefaultProfile as NormalAgentProfile;
                int rows;
                if (prof != null)
                {
                    rows = Messenger.Walk(
                        prof.VersionCode,
                        prof.Agent,
                        prof.GetCommunity,
                        new ObjectIdentifier(_definition.GetNumericalForm()),
                        list,
                        prof.Timeout,
                        WalkMode.WithinSubtree);
                }
                else
                {
                    SecureAgentProfile p         = (SecureAgentProfile)registry.DefaultProfile;
                    Discovery          discovery = Messenger.GetNextDiscovery(SnmpType.GetBulkRequestPdu);
                    ReportMessage      report    = discovery.GetResponse(p.Timeout, p.Agent);
                    rows = Messenger.BulkWalk(
                        VersionCode.V3,
                        p.Agent,
                        new OctetString(p.UserName),
                        new ObjectIdentifier(_definition.GetNumericalForm()),
                        list,
                        p.Timeout,
                        10,
                        WalkMode.WithinSubtree,
                        p.Privacy,
                        report);
                }

                SetRows(rows);
                PopulateGrid(list);
            }
        }
Exemple #14
0
        public static void Configure(IProfileRegistry registry, StartupParameters parameters)
        {
            var region = AwsStartup.ParseRegion(parameters.AwsRegion);
            var creds  = AwsStartup.CredentialsWithFallback(
                parameters.AwsAccessKey, parameters.AwsSecretKey, parameters.AwsProfile);

            registry.For <IAmazonDynamoDB>()
            .Use(ctx => new AmazonDynamoDBClient(creds, new AmazonDynamoDBConfig {
                RegionEndpoint = region
            }));
            registry.For <IAmazonCloudWatch>()
            .Use(ctx => new AmazonCloudWatchClient(creds, new AmazonCloudWatchConfig {
                RegionEndpoint = region
            }));
        }
        private static void RegisterCollectionTypes(this IProfileRegistry registry, IEnumerable <CollectionTypeRegistration> registrations)
        {
            foreach (var collectionRegistration in registrations)
            {
                foreach (var implementationType in collectionRegistration.ImplementationTypes)
                {
                    var registration = new TypeRegistration(
                        collectionRegistration.ServiceType,
                        implementationType,
                        collectionRegistration.Lifetime);

                    registry.Register(registration);
                }
            }
        }
        private static void AddAutoMapper(IProfileRegistry profileRegistry)
        {
            var profiles = AssemblyHandler.GetProfileTypes();

            var mapperConfiguration = new MapperConfiguration(
                cfg =>
            {
                foreach (var profile in profiles)
                {
                    cfg.AddProfile(profile);
                }
            });

            var mapper = mapperConfiguration.CreateMapper();

            profileRegistry.For <IMapper>().Use(mapper);
        }
Exemple #17
0
        private static void ConfigureInternalDependencies(IProfileRegistry registry, StartupParameters parameters)
        {
            registry.For <ISnsTopicCreator>().Use <SnsTopicCreator>();
            registry.For <ISnsSubscriptionCreator>().Use <SnsSubscriptionCreator>();

            registry.For <ITableAlarmCreator>().Use <TableAlarmCreator>();
            registry.For <IIndexAlarmCreator>().Use <IndexAlarmCreator>();
            registry.For <IAlarmFinder>().Use <AlarmFinder>();

            registry.For <IConfigLoader>().Use <ConfigLoader>();

            registry.For <IQueueAlarmCreator>().Use <QueueAlarmCreator>();

            registry.For <IDynamoAlarmGenerator>().Use <DynamoAlarmGenerator>();
            registry.For <IOrphanTablesReporter>().Use <OrphanTablesReporter>();
            registry.For <IOrphanQueuesReporter>().Use <OrphanQueuesReporter>();
            registry.For <ISqsAlarmGenerator>().Use <SqsAlarmGenerator>();

            registry.For <ICurrentTimeProvider>().Use <CurrentTimeProvider>();

            if (!string.IsNullOrWhiteSpace(parameters.WriteCloudFormationTemplatesToDirectory))
            {
                registry
                .For <ICloudformationStackDeployer>()
                .Use(
                    ctx => new DummyCloudFormationStackDeployer(
                        parameters.WriteCloudFormationTemplatesToDirectory,
                        ctx.GetInstance <IAlarmLogger>()));
            }
            else
            {
                var s3Location = GetS3Location(parameters);

                registry
                .For <ICloudformationStackDeployer>()
                .Use(ctx => new CloudformationStackDeployer(
                         ctx.GetInstance <IAlarmLogger>(),
                         ctx.GetInstance <IAmazonCloudFormation>(),
                         ctx.GetInstance <IAmazonS3>(),
                         s3Location
                         ));
            }

            registry.For <IAlarmCreator>().Use <CloudFormationAlarmCreator>();
        }
        private static void AddService <TServiceModel, TSource, TDataProvider, TResourceAlarmConfig>(
            IProfileRegistry registry,
            Func <WatchmanConfiguration, WatchmanServiceConfiguration <TResourceAlarmConfig> > mapper)
            where TServiceModel : class
            where TSource : IResourceSource <TServiceModel>
            where TDataProvider : IAlarmDimensionProvider <TServiceModel>,
        IResourceAttributesProvider <TServiceModel, TResourceAlarmConfig>
            where TResourceAlarmConfig : class, IServiceAlarmConfig <TResourceAlarmConfig>, new()
        {
            registry.For <IResourceSource <TServiceModel> >().Use <TSource>();
            registry.For <IAlarmDimensionProvider <TServiceModel> >().Use <TDataProvider>();
            registry.For <IResourceAttributesProvider <TServiceModel, TResourceAlarmConfig> >().Use <TDataProvider>();

            registry.For <IServiceAlarmTasks>()
            .Use <ServiceAlarmTasks <TServiceModel, TResourceAlarmConfig> >()
            .Ctor <Func <WatchmanConfiguration, WatchmanServiceConfiguration <TResourceAlarmConfig> > >()
            .Is(mapper);
        }
        private static void AddService <TServiceModel, TSource, TDimensionProvider, TAttributeProvider>(
            IProfileRegistry registry,
            Func <WatchmanConfiguration, WatchmanServiceConfiguration> mapper)
            where TServiceModel : class
            where TSource : IResourceSource <TServiceModel>
            where TDimensionProvider : IAlarmDimensionProvider <TServiceModel>
            where TAttributeProvider : IResourceAttributesProvider <TServiceModel>
        {
            registry.For <IResourceSource <TServiceModel> >().Use <TSource>();
            registry.For <IAlarmDimensionProvider <TServiceModel> >().Use <TDimensionProvider>();
            registry.For <IResourceAttributesProvider <TServiceModel> >().Use <TAttributeProvider>();

            registry.For <IServiceAlarmTasks <TServiceModel> >()
            .Use <ServiceAlarmTasks <TServiceModel> >()
            .Ctor <Func <WatchmanConfiguration, WatchmanServiceConfiguration> >()
            .Is(mapper);

            registry.For <IServiceAlarmTasks>().Use(ctx => ctx.GetInstance <IServiceAlarmTasks <TServiceModel> >());
        }
        public static void Register(IProfileRegistry registry)
        {
            if (registry == null)
            {
                throw new ArgumentNullException(nameof(registry));
            }

            // Web
            registry.For <HttpRequest>().HybridHttpOrThreadLocalScoped().Use(() => HttpContext.Current.Request);
            registry.For <HttpRequestBase>().HybridHttpOrThreadLocalScoped().Use <HttpRequestWrapper>();

            registry.For <IApplicationConfiguration>().Singleton().Use <BundleConfiguration>();
            registry.For <IApplicationConfiguration>().Singleton().Use <FilterConfiguration>();
            registry.For <IFormViewModel>().HybridHttpOrThreadLocalScoped().Use <FormViewModel>();
            registry.For <IHomeViewModel>().HybridHttpOrThreadLocalScoped().Use <HomeViewModel>();
            registry.For <IHtmlIdFactory>().Singleton().Use <HtmlIdFactory>();
            registry.For <IHttpEncoder>().Singleton().Use <HttpEncoder>();
            registry.For <IModelFactory>().Singleton().Use <ModelFactory>();
            registry.For <IModelMetadataProvider>().Singleton().Use <ExtendedCachedDataAnnotationsModelMetadataProvider>();
            registry.For <ISystemInformationFactory>().Singleton().Use <SystemInformationFactory>();
        }
        private static void Register(this IProfileRegistry registry, ServiceDescriptor descriptor)
        {
            if (descriptor.ImplementationType != null)
            {
                registry.For(descriptor.ServiceType)
                .LifecycleIs(descriptor.Lifetime)
                .Use(descriptor.ImplementationType);
                return;
            }

            if (descriptor.ImplementationFactory != null)
            {
                registry.For(descriptor.ServiceType)
                .LifecycleIs(descriptor.Lifetime)
                .Use(descriptor.CreateFactory());
                return;
            }

            registry.For(descriptor.ServiceType)
            .LifecycleIs(descriptor.Lifetime)
            .Use(descriptor.ImplementationInstance);
        }
Exemple #22
0
 public static void UseOptions <T>(this IProfileRegistry registry, string configSection)
     where T : class, new()
 {
     registry.For <IOptions <T> >().Use(() => new OptionsProvider <T>(configSection)).Singleton();
 }
Exemple #23
0
 private static void ConfigureResourceSources(IProfileRegistry registry)
 {
     registry.For <IResourceSource <TableDescription> >().Use <TableDescriptionSource>();
     registry.For <IResourceSource <QueueData> >().Use <QueueSource>();
 }
 public static void AddRegistry(this IProfileRegistry profileRegistry, IContainerRegistry registry)
 {
     profileRegistry.RegisterTypes(registry.TypeRegistrations);
     profileRegistry.RegisterCollectionTypes(registry.CollectionTypeRegistrations);
     profileRegistry.RegisterInstances(registry.InstanceRegistrations);
 }
 private static void Register(this IProfileRegistry registry, TypeRegistration registration)
 {
     registry.For(registration.ServiceType)
     .Use(registration.ImplementationType)
     .LifecycleIs(registration.Lifetime);
 }
 public static void ConfigureInternalDependencies(IProfileRegistry registry)
 {
     registry.For <IResourceSource <TableDescription> >().Use <TableDescriptionSource>();
     registry.For <IConfigLoader>().Use <ConfigLoader>();
 }
        private static void RegisterType(Type registrationType, Type implementationType, Lifetime lifetime, IProfileRegistry registry)
        {
            switch (lifetime)
            {
            case Lifetime.Transient:
                registry.For(registrationType)
                .LifecycleIs(Lifecycles.Unique)
                .Use(implementationType);
                break;

            case Lifetime.Singleton:
                registry.For(registrationType)
                .LifecycleIs(Lifecycles.Singleton)
                .Use(implementationType);
                break;

            case Lifetime.PerRequest:
                registry.For(registrationType)
                .Use(implementationType);
                break;

            default:
                throw new ArgumentOutOfRangeException("lifetime", lifetime, String.Format("Unknown Lifetime: {0}.", lifetime));
            }
        }