Beispiel #1
0
        public void DeactivateCommandShouldDeactivateItemWithLog()
        {
            var dispatcher = new Dispatcher <ICommand>();
            var sh         = new StudentEnrollmentHandlers();
            var ch         = new CommonCommandHandlers();

            var studentRepository = new StudentRepository();
            var classRepository   = new ClassRepository();

            Action <StudentEnrollCommand> studentEnrollPipeline
                = x => ch.Log(x, next => sh.Enroll(studentRepository, classRepository, next));

            dispatcher.Subscribe(studentEnrollPipeline);

            dispatcher.Dispatch(new StudentEnrollCommand(1, 2, DateTime.Now, DateTime.Now.AddMonths(6)));
        }
Beispiel #2
0
        public void DeactivateCommandShouldDeactivateItemWithLogAndPerRequest()
        {
            var dispatcher = new Dispatcher <ICommand>();
            var sh         = new StudentEnrollmentHandlers();
            var ch         = new CommonCommandHandlers();
            var lifeTime   = new LifeTime();

            Func <StudentRepository> studentRepositoryFactory = () => new StudentRepository();
            Func <ClassRepository>   classRepositoryFactory   = () => new ClassRepository();

            Action <StudentEnrollCommand> studentEnrollPipeline
                = x => ch.Log(x, next => sh.Enroll(lifeTime.PerThread(studentRepositoryFactory),
                                                   lifeTime.PerThread(classRepositoryFactory), next));

            dispatcher.Subscribe(studentEnrollPipeline);

            dispatcher.Dispatch(new StudentEnrollCommand(1, 2, DateTime.Now, DateTime.Now.AddMonths(6)));

            lifeTime.Dispose();
        }
Beispiel #3
0
        public Dispatcher <ICommand> RegisterDependencies()
        {
            var dispatcher = new Dispatcher <ICommand>();

            _lifeTime = new LifeTime();

            Func <StudentRepository> studentRepositoryFactory = () => new StudentRepository();
            Func <ClassRepository>   classRepositoryFactory   = () => new ClassRepository();

            var sh = new StudentEnrollmentHandlers();
            var ch = new CommonCommandHandlers();
            Action <StudentEnrollCommand> studentEnrollPipeline = c =>
                                                                  ch.Audit(c, c1 =>
                                                                           ch.Log(c1, c2 =>
                                                                                  sh.Enroll(_lifeTime.PerWebRequest(studentRepositoryFactory),
                                                                                            _lifeTime.PerWebRequest(classRepositoryFactory), c2)));

            dispatcher.Subscribe(studentEnrollPipeline);

            return(dispatcher);
        }