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))); }
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(); }
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); }