public ScheduledFlight(FlightRoute flightRoute, List <IFlightBusinessRule> flightBusinessRules, List <Plane> availablePlanes)
 {
     FlightRoute          = flightRoute;
     Passengers           = new List <Passenger>();
     _flightBusinessRules = flightBusinessRules;
     _availablePlanes     = availablePlanes;
 }
Esempio n. 2
0
 public ScheduledFlight(FlightRoute flightRoute,
                        FlightRuleService flightRuleService,
                        AvailablePlaneService availablePlaneService)
 {
     FlightRoute           = flightRoute;
     FlightRuleService     = flightRuleService;
     AvailablePlaneService = availablePlaneService;
     Passengers            = new List <Passenger>();
 }
        public ScheduledFlight(FlightRoute flightRoute, ISummaryBuilder summaryBuilder, ISummaryOutputGenerator summaryOutputGenerator, IFleetRepository fleetRepository)
        {
            FlightRoute = flightRoute;

            _summaryBuilder         = summaryBuilder;
            _summaryOutputGenerator = summaryOutputGenerator;
            _fleetRepository        = fleetRepository;

            Passengers = new List <Passenger>();
        }
Esempio n. 4
0
        /// <summary>
        /// setup test data
        /// </summary>
        /// <returns></returns>
        public static ScheduledFlight SetupAirlineData()
        {
            var londonToParis = new FlightRoute("London", "Paris")
            {
                BaseCost                 = 50,
                BasePrice                = 100,
                LoyaltyPointsGained      = 5,
                MinimumTakeOffPercentage = 0.7
            };

            var _scheduledFlight = new ScheduledFlight(londonToParis);

            _scheduledFlight.SetAircraftForRoute(GetPlanes().FirstOrDefault());

            return(_scheduledFlight);
        }
Esempio n. 5
0
 public ScheduledFlight(FlightRoute flightRoute)
 {
     FlightRoute  = flightRoute;
     Passengers   = new List <Passenger>();
     RuleSet      = new DefaultRuleSet();
     BackupPlanes = new List <Plane>
     {
         new Plane()
         {
             Id            = 456,
             Name          = "Bombardier Q400",
             NumberOfSeats = 15
         },
         new Plane()
         {
             Id            = 789,
             Name          = "ATR 640",
             NumberOfSeats = 30
         }
     };
 }
 public ScheduledFlight(FlightRoute flightRoute)
 {
     FlightRoute = flightRoute;
     Passengers  = new List <Passenger>();
 }
Esempio n. 7
0
        public ScheduledFlightSummary CalculateSummary(IEnumerable <Passenger> passengers, FlightRoute flightRoute)
        {
            var scheduledFlightSummary = new ScheduledFlightSummary();

            foreach (var passenger in passengers)
            {
                scheduledFlightSummary.SeatsTaken++;

                scheduledFlightSummary.CostOfFlight += flightRoute.BaseCost;

                scheduledFlightSummary.SalesPerPassengerType[passenger.Type]++;

                var passengerProcessorContext = _passengerProcessorContextProvider.GetPassengerProcessorContext(passenger, flightRoute);

                var processor = _passengerProcessorFactory.GetProcessor(passenger.Type);

                var passengerFlightLogistics = processor.Process(passengerProcessorContext);

                scheduledFlightSummary.RevenueFromFlight += passengerFlightLogistics.ProfitFromFlight;

                scheduledFlightSummary.TotalLoyaltyPointsRedeemed += passengerFlightLogistics.LoyaltyPointsRedeemed;

                scheduledFlightSummary.TotalLoyaltyPointsAccrued += passengerFlightLogistics.LoyaltyPointsAccrued;

                scheduledFlightSummary.TotalExpectedBaggage += passengerFlightLogistics.ExpectedBaggage;
            }

            return(scheduledFlightSummary);
        }
Esempio n. 8
0
 public ScheduledFlightSummary BuildSummary(FlightRoute flightRoute, Plane aircraft, IEnumerable <Passenger> passengers)
 {
     return(_scheduledFlightSummaryCalculator.CalculateSummary(passengers, flightRoute));
 }