예제 #1
0
        public SimpleTestContainer()
        {
            var domainEventPublisher = new SimpleEventPublisher();

            var uoW = new MemoryCarRentalUoW(
                new MemoryRepository <Driver>(),
                new MemoryRepository <Car>(),
                new MemoryRepository <Rental>(),
                new MemoryRepository <Office>()
                );

            var freeMinutesPolicyFactory = new FreeMinutesPolicy();
            var rentalFactory            = new RentalFactory(domainEventPublisher);

            var carMapper    = new CarMapper();
            var driverMapper = new DriverMapper();
            var rentalMapper = new RentalMapper();
            var officeMapper = new OfficeMapper();


            DriverService       = new DriverService(uoW, driverMapper, domainEventPublisher);
            CarService          = new CarService(uoW, carMapper, domainEventPublisher);
            RentalService       = new RentalService(uoW, rentalMapper, domainEventPublisher, rentalFactory, freeMinutesPolicyFactory);
            FinishRentalService = new StopRentalService(uoW, domainEventPublisher);
            OfficeService       = new OfficeService(uoW, officeMapper, domainEventPublisher);
        }
예제 #2
0
 public RentalService(ICarRentalUoW uoW, RentalMapper rentalMapper, IDomainEventPublisher domainEventPublisher, RentalFactory rentalFactory, FreeMinutesPolicy policyFactory)
 {
     _uoW                  = uoW;
     _rentalMapper         = rentalMapper;
     _domainEventPublisher = domainEventPublisher;
     _rentalFactory        = rentalFactory;
     _policyFactory        = policyFactory;
 }
예제 #3
0
 public RentalService(RentalFactory rentalFactory, ICarRentalUnitOfWork unitOfWork, RentalMapper rentalMapper,
                      PositionService positionService)
 {
     _rentalFactory   = rentalFactory;
     _unitOfWork      = unitOfWork;
     _rentalMapper    = rentalMapper;
     _positionService = positionService;
 }
        public SimpleTestContainer()
        {
            // domain event publisher
            var domainEventPublisher = new SimpleEventPublisher();

            // infrastructure service
            var emaildispatcher = new EmailDispatcher();

            // event listeners
            var driverCreatedEventListener = new DriverCreatedEventListener();

            domainEventPublisher.Subscribe <DriverCreatedEvent>(driverCreatedEventListener);

            //unitOfWork
            var unitOfWork = new MemoryCarRentalUnitOfWork(
                new MemoryRepository <Driver>(),
                new MemoryRepository <Car>(),
                new MemoryRepository <Rental>(),
                new MemoryRepository <Scooter>());

            // factories
            var rentalFactory      = new RentalFactory(domainEventPublisher);
            var carFactory         = new CarFactory(domainEventPublisher);
            var freeMinutesFactory = new FreeMinutesFactory();

            // mappers
            var carMapper     = new CarMapper();
            var driverMapper  = new DriverMapper();
            var scooterMapper = new ScooterMapper();
            var rentalMapper  = new RentalMapper();

            this.CarService = new CarService(
                unitOfWork,
                carMapper,
                domainEventPublisher);

            this.ScooterService = new ScooterService(
                unitOfWork,
                scooterMapper,
                domainEventPublisher);

            this.DriverService = new DriverService(
                unitOfWork,
                driverMapper,
                domainEventPublisher);

            this.RentalService = new RentalService(
                unitOfWork,
                rentalFactory,
                rentalMapper,
                freeMinutesFactory,
                domainEventPublisher);
        }
예제 #5
0
 public RentalService(ICarRentalUnitOfWork unitOfWork,
                      RentalFactory rentalFactory,
                      RentalMapper rentalMapper,
                      FreeMinutesFactory freeMinutesFactory,
                      IDomainEventPublisher domainEventPublisher)
 {
     this._unitOfWork           = unitOfWork;
     this._rentalMapper         = rentalMapper;
     this._rentalFactory        = rentalFactory;
     this._freeMinutesFactory   = freeMinutesFactory;
     this._domainEventPublisher = domainEventPublisher;
 }
예제 #6
0
 public RentalService(ICarRentalUnitOfWork unitOfWork,
                      RentalFactory rentalFactory,
                      RentalMapper rentalMapper,
                      FreeMinutespolicyFactory freeMinutespolicyFactory,
                      PositionService positionService,
                      HandlePassengerService handlePassengerService,
                      IDomainEventPublisher domainEventPublisher)
 {
     this._unitOfWork               = unitOfWork;
     this._rentalFactory            = rentalFactory;
     this._rentalMapper             = rentalMapper;
     this._freeMinutespolicyFactory = freeMinutespolicyFactory;
     this._positionService          = positionService;
     this._handlePassengerService   = handlePassengerService;
     this._domainEventPublisher     = domainEventPublisher;
 }
예제 #7
0
        public TestContainer()
        {
            UnitOfWork = new MemoryCarRentalUnitOfWork();

            var carFactory    = new CarFactory();
            var driverFactory = new DriverFactory();

            _rentalFactory = new RentalFactory();
            var rentalAreaFactory = new RentalAreaFactory();

            var positionService = new PositionService(UnitOfWork);

            var carMapper    = new CarMapper();
            var driverMapper = new DriverMapper();

            _rentalMapper = new RentalMapper();
            var rentalAreaMapper = new RentalAreaMapper();

            CarService        = new CarService(carFactory, UnitOfWork, carMapper);
            DriverService     = new DriverService(driverFactory, UnitOfWork, driverMapper);
            RentalService     = new RentalService(_rentalFactory, UnitOfWork, _rentalMapper, positionService);
            RentalAreaService = new RentalAreaService(rentalAreaFactory, UnitOfWork, rentalAreaMapper);
        }