public BookASingleRoomFeature()
        {
            companyService = new ProductionCompanyService(inMemoryEmployeeRepository);
            var bookingPolicyRepository = new InMemoryBookingPolicyRepository();

            bookingPolicyService = new ProductionBookingPolicyService(bookingPolicyRepository, companyService);
            HotelRepository hotelRepository = new InMemoryHotelRepository();

            hotelService   = new ProductionHotelService(hotelRepository);
            bookingService = new BookingService(hotelService, bookingRepository, bookingPolicyService, productionIdGenerator);
            bookingServiceWithStubbedIdGenerator = new BookingService(hotelService, bookingRepository, bookingPolicyService, mockIdGenerator.Object);
        }
Пример #2
0
        static void Main()
        {
            var userRepository  = new InMemoryUserRepository();
            var hotelRepository = new InMemoryHotelRepository();

            var smsMessenger   = new SmsMessenger();
            var emailMessenger = new EmailMessenger();

            var users = new User[] {
                new User("Juanma", smsMessenger, new int[] { 1, 2, 3, 4 }, hotelRepository),
                new User("Alberto", smsMessenger, new int[] { 1, 3, 5, 7 }, hotelRepository),
                new User("Emma", emailMessenger, new int[] { 2, 4, 6, 8 }, hotelRepository),
                new User("Maria", emailMessenger, new int[] { 1, 3, 4, 7, 8 }, hotelRepository)
            };

            foreach (var user in users)
            {
                userRepository.Insert(user);
            }

            var s = new PromotionSender(userRepository, hotelRepository);

            s.SendPromotionToEveryone();
        }