Пример #1
0
        public void SetUp()
        {
            _startDate = DateTime.UtcNow.Date;
            _endDate   = DateTime.UtcNow.Date.AddDays(2);

            car = new Car
            {
                Price = new Price {
                    DailyPrice = 100
                }
            };

            CarRepository.FindById(0).Returns(car);
            BookingRepository.GetBooking(car, _startDate, _endDate).Returns(new List <CarBooking>());
            BookCarUseCase.Book(0, _startDate, _endDate);
        }
Пример #2
0
 public IActionResult BookCar([FromBody] BookCarRequest bookCarRequest)
 {
     try
     {
         _bookCarUseCase.Book(bookCarRequest.CarId, bookCarRequest.StartDate, bookCarRequest.EndDate);
         _logger.Log(LogLevel.Debug, $"Booking created for {bookCarRequest.CarId}");
         return(Accepted());
     }
     catch (CarIsAlreadyBookedException e)
     {
         return(BadRequest(e.Message));
     }
     catch (CarDoesNotExistsException e)
     {
         return(NotFound(bookCarRequest.CarId));
     }
 }
Пример #3
0
        static int Main(int carId, DateTime startDate, DateTime endDate)
        {
            var connectionStringBuilder = new SqlConnectionStringBuilder
            {
                DataSource         = "localhost",
                InitialCatalog     = "Rental",
                IntegratedSecurity = true
            };

            using var rentalDbContext = new RentalDbContext(connectionStringBuilder.ToString());

            try
            {
                var useCase = new BookCarUseCase(new CarRepositoryAdapter(rentalDbContext), new BookingRepositoryAdapter(rentalDbContext));
                useCase.Book(carId, startDate, endDate);
            }
            catch (CarDoesNotExistsException e)
            {
                Console.Error.WriteLine($"Car is not found: {carId}");
                return(1);
            }

            return(0);
        }
Пример #4
0
 public void it_should_throw_exception()
 {
     Assert.Throws <CarIsAlreadyBookedException>(() => BookCarUseCase.Book(0, _startDate, _endDate));
 }