Example #1
0
        /// <summary>
        /// Adds a named service to the dependency map.
        /// </summary>
        /// <remarks>This service will be created once per web session.</remarks>
        /// <param name="map">The target dependency map.</param>
        /// <param name="serviceName">The service name.</param>
        /// <param name="serviceType">The service type.</param>
        /// <param name="implementingType">The implementing type.</param>
        public static void AddPerSessionService(this DependencyMap map, string serviceName, Type serviceType, Type implementingType)
        {
            // Add the SessionCache by default
            if (!map.Contains(typeof(ICache)))
                map.AddService<ICache, SessionCache>();

            // The cached instantiation class will use the cache in the container
            // to cache service instances
            var dependency = new Dependency(serviceType, serviceName);
            var implementation = new CachedInstantiation(new TransientType(implementingType, map, new ConstructorResolver()));

            map.AddService(dependency, implementation);
        }
 public static void RegisterRepository(this IAcDomain acDomain, IEnumerable<string> efDbContextNames, params Assembly[] assemblies)
 {
     var repositoryContexts = efDbContextNames.Select(item => new EfRepositoryContext(acDomain, item)).ToList();
     foreach (var assembly in assemblies)
     {
         foreach (var type in assembly.GetTypes())
         {
             if (type.IsClass && !type.IsAbstract && typeof(IAggregateRoot).IsAssignableFrom(type))
             {
                 var repositoryType = typeof(GenericRepository<>);
                 var genericInterface = typeof(IRepository<>);
                 repositoryType = repositoryType.MakeGenericType(type);
                 genericInterface = genericInterface.MakeGenericType(type);
                 foreach (var repositoryContext in repositoryContexts)
                 {
                     if (TryGetType(repositoryContext, type))
                     {
                         var repository = Activator.CreateInstance(repositoryType, acDomain, repositoryContext.EfDbContextName);
                         acDomain.AddService(genericInterface, repository);
                     }
                 }
             }
         }
     }
     foreach (var item in repositoryContexts)
     {
         item.Dispose();
     }
 }
 public static DiscordClient UsingCommands(this DiscordClient client, Action<CommandServiceConfigBuilder> configFunc = null)
 {
     var builder = new CommandServiceConfigBuilder();
     configFunc(builder);
     client.AddService(new CommandService(builder));
     return client;
 }
        /// <summary>
        /// Registers a service with a dependency map.
        /// </summary>
        /// <param name="map">The dependency map.</param>
        /// <param name="service">The service that will be registered with the dependency map.</param>
        internal static void Register(this DependencyMap map, IServiceInfo service)
        {
            var serviceName = service.ServiceName;
            var serviceType = service.ServiceType;
            var implementingType = service.ImplementingType;

            map.AddService(serviceName, serviceType, implementingType);
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="acDomain"></param>
 public static void RegisterEdiCore(this IAcDomain acDomain)
 {
     #region Edi
     acDomain.AddService(typeof(IExecutorFactory), new ExecutorFactory());
     acDomain.AddService(typeof(IDispatcherFactory), new DispatcherFactory());
     acDomain.AddService(typeof(IAuthenticator), new DefaultAuthenticator());
     acDomain.AddService(typeof(IMessageProducer), new DefaultMessageProducer());
     acDomain.AddService(typeof(IStackTraceFormater), new JsonStackTraceFormater());
     acDomain.AddService(typeof(IInputValidator), new DefaultInputValidator());
     acDomain.AddService(typeof(IAuditDiscriminator), new DefaultAuditDiscriminator());
     acDomain.AddService(typeof(IPermissionValidator), new DefaultPermissionValidator());
     #endregion
 }
        public static void InitInterceptor(this IServiceContainer serviceContainer)
        {
            if (serviceContainer == null)
            {
                throw new ArgumentNullException("serviceContainer");


            }

            var interceptorProxy = new InterceptorProxy {Container = new ServiceLocatorAdapter(serviceContainer)};
            serviceContainer.AddService(typeof(IInterceptorProxy), interceptorProxy);
            serviceContainer.PostProcessors.Add(new InterceptorPostProcessor());
        }
		public static void UseMulticastSubscriptionClient(this ServiceBusConfigurator configurator,
		                                                  Action<MulticastSubscriptionClientConfigurator> configureCallback)
		{
            string network = null;

			var clientConfigurator = new MulticastSubscriptionClientConfiguratorImpl();

			configureCallback(clientConfigurator);

			configurator.AddSubscriptionObserver( (bus, router) => 
                {
                    network = router.Network;

                    return clientConfigurator.Create(bus, router);
                });

            configurator.AddService(BusServiceLayer.Presentation,
                () => new GroupMessageRouter(
                    clientConfigurator.SubscriptionBus,
                    clientConfigurator.GroupSelectionStrategy,
                    network));

		}
 public static DiscordClient UsingCommands(this DiscordClient client, CommandServiceConfig config = null)
 {
     client.AddService(new CommandService(config));
     return client;
 }
 public static DiscordClient UsingAudio(this DiscordClient client, AudioServiceConfig config = null)
 {
     client.AddService(new AudioService(config));
     return client;
 }
 public static DiscordClient UsingGlobalWhitelist(this DiscordClient client, params ulong[] initialUserIds)
 {
     client.AddService(new WhitelistService(initialUserIds));
     return client;
 }
Example #11
0
 public static DiscordClient UsingDynamicPerms(this DiscordClient client)
 {
     client.AddService(new DynamicPermissionService());
     client.AddModule<DynamicPermissionModule>("Dynamic Permissions");
     return client;
 }
 public static DiscordClient UsingPermissionLevels(this DiscordClient client, Func<User, Channel, int> permissionResolver)
 {
     client.AddService(new PermissionLevelService(permissionResolver));
     return client;
 }
Example #13
0
 public static DiscordClient UsingCommands(this DiscordClient client, CommandServiceConfig config = null, Func<Channel, bool> getNsfwFlag = null, Func<User, bool> getMusicFlag = null, Func<Channel, User, bool> getIgnoredChannelFlag = null)
 {
     client.AddService(new CommandService(config, getNsfwFlag, getMusicFlag, getIgnoredChannelFlag));
     return client;
 }