예제 #1
0
 public FlightBuilder(Plane plane)
 {
     flight = new Domain.Entities.Flight(
         plane,
         plane.NumberOfSeats,
         2,
         100,
         DateTime.UtcNow);
 }
예제 #2
0
        private Task <double> GetPriceForDate(Domain.Entities.Flight flight, DateTimeOffset departureDate)
        {
            if (flight.CustomPrices.Any(x => x.From <= departureDate &&
                                        x.To >= departureDate))
            {
                return(Task.FromResult(flight.CustomPrices
                                       .Where(x => x.From <= departureDate && x.To >= departureDate)
                                       .First()
                                       .Value));
            }

            return(Task.FromResult(flight.DefaultPrice));
        }
예제 #3
0
        public void invalid_number_of_baggages_added()
        {
            var plane  = new PlaneBuilder().Build();
            var flight = new Domain.Entities.Flight(plane,
                                                    100,
                                                    1, // Number of allowed baggages
                                                    100,
                                                    DateTime.UtcNow);

            Assert.Throws <FlightDomainException>(() => {
                var passenger = new PassengerBuilder("Fake passenger", flight)
                                .AddOne("first", 10)
                                .AddOne("second", 10);
            });
        }
예제 #4
0
        private async Task <List <FlightDto> > GetFlightsForDates(Domain.Entities.Flight flight, List <DateTimeOffset> daysInRange)
        {
            var flights = new List <FlightDto>();

            foreach (var date in daysInRange)
            {
                var flightDto = _mapper.Map <FlightDto>(flight);
                flightDto.DepartureDateTime = new DateTimeOffset(date.Year, date.Month, date.Day, flight.Hour, flight.Minute, 0, TimeSpan.Zero);
                flightDto.Price             = await GetPriceForDate(flight, flightDto.DepartureDateTime);

                flights.Add(flightDto);
            }

            return(flights);
        }
            private void InsertFlight(Command message)
            {
                // ** Data Mapper Pattern

                var flight = new Domain.Entities.Flight()
                {
                    PlaneId      = message.PlaneId,
                    FlightNumber = message.FlightNumber,
                    From         = message.From,
                    To           = message.To,
                    Departure    = DateTime.Parse(message.DepartureDate),
                    Arrival      = DateTime.Parse(message.ArrivalDate)
                };

                // Add time

                try
                {
                    string[] tokens = message.DepartureTime.Split(":");
                    flight.Departure = flight.Departure.AddHours(int.Parse(tokens[0]));
                    flight.Departure = flight.Departure.AddMinutes(int.Parse(tokens[1]));
                }
                catch { /* noop */ }

                try
                {
                    string[] tokens = message.ArrivalTime.Split(":");
                    flight.Arrival = flight.Arrival.AddHours(int.Parse(tokens[0]));
                    flight.Arrival = flight.Arrival.AddMinutes(int.Parse(tokens[1]));
                }
                catch { /* noop */ }
                _serviceManager.Flight.CreateFlight(flight);
                _serviceManager.Save();

                _cache.AddFlight(flight);
            }
예제 #6
0
 public Domain.Entities.Flight Add(Domain.Entities.Flight flight)
 {
     return(_context.Flights.Add(flight).Entity);
 }
예제 #7
0
 public PassengerBuilder(string name, Domain.Entities.Flight flight)
 {
     passenger = new Passenger(name, flight);
 }