Пример #1
0
 static ServiceLayerComponentResolving()
 {
     IoC.Container = null;
     KnownTypeProvider.ClearAllKnownTypes();
     requestHandlerAssemblies = new List <Assembly> {
         Assembly.GetExecutingAssembly(), typeof(RequestHandlerB).Assembly
     };
     requestResponseAssemblies = new List <Assembly> {
         Assembly.GetExecutingAssembly(), typeof(RequestB).Assembly
     };
     configuration = new ServiceLayerConfiguration(requestHandlerAssemblies[0], requestResponseAssemblies[0],
                                                   Activator.CreateInstance <TContainer>());
     configuration.AddRequestHandlerAssembly(requestHandlerAssemblies[1]);
     configuration.AddRequestAndResponseAssembly(requestResponseAssemblies[1]);
     configuration.Use <RequestHandlerBasedConventions>();
     configuration.Initialize();
 }
Пример #2
0
        /// <summary>
        /// Configures the agatha.
        /// </summary>
        /// <param name="appContainer">The app container.</param>
        protected virtual void ConfigureAgatha(IContainer appContainer)
        {
            var structureMapContainer = new Agatha.StructureMap.Container(appContainer);

            IoC.Container = structureMapContainer;

            var serviceLayerConfiguration = new ServiceLayerConfiguration(structureMapContainer);

            // register request and response assemblies
            var             messageRegex      = new Regex("^Asam.Ppc.Service.Messages$");
            List <Assembly> messageAssebllies = AppDomain.CurrentDomain.GetAssembliesFromApplicationBaseDirectory()
                                                .Where(x => messageRegex.IsMatch(x.GetName().Name))
                                                .ToList();

            messageAssebllies.ForEach(
                x =>
            {
                List <Type> types =
                    x.GetTypes().     //Where(
                    //type => !type.IsSubclassOf(typeof (Request)) && !type.IsSubclassOf(typeof (Response))).
                    ToList();
                //types.ForEach(KnownTypeProvider.Register);

                serviceLayerConfiguration.AddRequestAndResponseAssembly(x);
            });

            // register request handler assemblies
            var             serviceRegex      = new Regex("^Asam.Ppc.Service.Handlers$");
            List <Assembly> serviceAssemblies = AppDomain.CurrentDomain.GetAssembliesFromApplicationBaseDirectory()
                                                .Where(x => serviceRegex.IsMatch(x.GetName().Name))
                                                .ToList();

            serviceAssemblies.ForEach(
                x => serviceLayerConfiguration.AddRequestHandlerAssembly(x));

            // register agatha conventions
            serviceLayerConfiguration.Use <RequestHandlerBasedConventions>();

            serviceLayerConfiguration.RequestProcessorImplementation = typeof(NHibernateTransactionRequestProcessor);

            // register business exception type
            //serviceLayerConfiguration.BusinessExceptionType = typeof(BusinessRuleException);

            serviceLayerConfiguration.Initialize();
        }