public ScheduledFlight(FlightRoute flightRoute, List <IFlightBusinessRule> flightBusinessRules, List <Plane> availablePlanes) { FlightRoute = flightRoute; Passengers = new List <Passenger>(); _flightBusinessRules = flightBusinessRules; _availablePlanes = availablePlanes; }
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>(); }
/// <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); }
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>(); }
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); }
public ScheduledFlightSummary BuildSummary(FlightRoute flightRoute, Plane aircraft, IEnumerable <Passenger> passengers) { return(_scheduledFlightSummaryCalculator.CalculateSummary(passengers, flightRoute)); }