Пример #1
0
 public static void CreateUser(CreateUser request, Func<IUserRepository> userRepositoryFactory, ILogger logger)
 {
     using (var userRepository = userRepositoryFactory())
     {
         var user = new User { Name = request.Name };
         userRepository.Add(user);
         userRepository.Save();
         logger.Info("UserServiceModule: User Created");
     }
 }
Пример #2
0
        static void Main()
        {
            // Look ma, no DI container! 
            var logger = new ConsoleLogger();
            Func<IUserRepository> userRepositoryFactory =
                () => new InMemoryUserRepository();

            AppDispatcher.Initialize(app =>
            {
                app.RegisterHandler<CreateUser>(createUserRequest =>
                {
                    UserServiceModule.CreateUser(createUserRequest,
                        userRepositoryFactory, logger);
                });
            });

            var request = new CreateUser { Name = "Jane Smith" };

            AppDispatcher.Handle(request);
        }
Пример #3
0
        static void Main()
        {
            // Configure your DI container
            var container = new UnityContainer();
            container.RegisterType<IUserRepository, InMemoryUserRepository>();
            container.RegisterType<ILogger, ConsoleLogger>();
            container.RegisterType(typeof(IHandle<CreateUser>), typeof(UserService));
            // Create common service locator adapter
            var unityServiceLocatorAdapter = new UnityServiceLocator(container);

            // Initilaize the AppDispatcher
            AppDispatcher.Initialize(app =>
            {
                app.UseCommonServiceLocator(unityServiceLocatorAdapter);
            });

            // Create a request
            var request = new CreateUser { Name = "Jane Smith" };

            // Handle it using the dispatcher, if DI is configured correctly
            // the message handler in your application service will handle it.
            AppDispatcher.Handle(request);
        }
Пример #4
0
        static void Main()
        {
            var container = new Container();
            container.Register<IUserRepository, InMemoryUserRepository>();
            container.Register<ILogger, ConsoleLogger>();
            container.RegisterManyForOpenGeneric(typeof(IHandle<>), AppDomain.CurrentDomain.GetAssemblies());
            container.RegisterDecorator(typeof(IHandle<>), typeof(LoggingDecorator<>));

            var simpleInjectorServiceLocatorAdapter = new SimpleInjectorServiceLocatorAdapter(container);

            AppDispatcher.Initialize(app =>
            {
                // Decorating the pipline AND using IoC: you will see
                // the action pipleine below wraps any IoC decorators
                app.GlobalPipeline(pipeline => pipeline.Decorate(handler =>
                {
                    Console.WriteLine("before a");
                    handler();
                    Console.WriteLine("after a");
                }).Decorate(handler =>
                {
                    Console.WriteLine("before b");
                    handler();
                    Console.WriteLine("after b");
                }), true);

                app.UseCommonServiceLocator(simpleInjectorServiceLocatorAdapter);

            });

            var request = new CreateUser { Name = "Jane Smith" };

            AppDispatcher.Handle(request);

            Console.ReadLine();
        }
Пример #5
0
 public IHttpActionResult CreateUser(CreateUser request)
 {
     _app.Handle(request);
     return Ok();
 }