public void Execute(WebServicePublisherConfig config)
        {
            Container.RegisterInstance(config, If <WebServicePublisherConfig> .IsNotRegistered);

            if (!Container.IsRegistered <INotificationRepository>())
            {
                var repoConfig = new FileSystemNotificationRepositoryConfig
                {
                    BaseFolder = config.BaseFolder
                };
                Container.RegisterInstance(repoConfig);
                Container.RegisterAsTransient <INotificationRepository>(
                    typeof(FileSystemNotificationRepository));
            }

            if (!Container.IsRegistered <IWebServicePublisherStrategy>())
            {
                var clientConfig = new WolfpackWebServicesClientConfig();
                clientConfig.InjectFrom <LoopValueInjection>(config);
                Container.RegisterInstance(clientConfig);

                Container.RegisterAsTransient <IWolfpackWebServicesClient>(typeof(WolfpackWebServicesClient));
                Container.RegisterAll <IPipelineStep <WebServicePublisherContext> >();
                Container.RegisterAsTransient <IWebServicePublisherStrategy>(
                    typeof(WebServicePublisherStrategy));
            }
        }
Пример #2
0
        public void Execute(WebServiceActivityConfig config)
        {
            var tracker = new ActivityTracker();

            Container.RegisterInstance(tracker);
            Container.RegisterAsSingleton <IWebServiceExtender>(typeof(CoreServicesExtender));

            if (!Container.IsRegistered <IWebServiceReceiverStrategy>())
            {
                if (!Container.IsRegistered <INotificationRepository>())
                {
                    var repoConfig = new FileSystemNotificationRepositoryConfig
                    {
                        BaseFolder = SmartLocation.GetLocation("_notifications")
                    };
                    Container.RegisterInstance(repoConfig);
                    Container.RegisterAsTransient <INotificationRepository>(
                        typeof(FileSystemNotificationRepository));
                }

                if (!Container.IsRegistered <MessageStalenessCheckConfig>())
                {
                    Container.RegisterAsSingleton(typeof(MessageStalenessCheckConfig));
                }

                Container.RegisterAll <IPipelineStep <WebServiceReceiverContext> >();
                Container.RegisterAsTransient <IWebServiceReceiverStrategy>(typeof(WebServiceReceiverStrategy));
            }
        }