public ReplaceInRangeResponse ReplaceInRange([FromQuery(Name = "lowerBound")] int lowerBound, [FromQuery(Name = "upperBound")] int upperBound)
        {
            if (lowerBound > upperBound)
            {
                throw new ArgumentException("lowerBound must be less than or equal to upperBound");
            }

            var range         = Enumerable.Range(lowerBound, (upperBound - lowerBound) + 1).ToArray();
            var termsReplaced = _termReplacer.ReplaceSequence(range);
            var summary       = _summaryBuilder.BuildSummary(termsReplaced, range);

            return(ReplaceInRangeResponse.Build(termsReplaced, range, summary));
        }
        public string GetSummary(RuleSetType ruleSetType)
        {
            var scheduledFlightSummary = _summaryBuilder.BuildSummary(FlightRoute, Aircraft, Passengers);

            var scheduledFlightContext = new ScheduledFlightContext()
            {
                Aircraft               = Aircraft,
                FlightRoute            = FlightRoute,
                RuleSetType            = ruleSetType,
                ScheduledFlightSummary = scheduledFlightSummary
            };

            return(_summaryOutputGenerator.GenerateOutput(scheduledFlightContext));
        }
        public void CalculateSummaryIsCalled(int expectedSeatsTaken, int expectedBaggage)
        {
            _summaryBuilder.BuildSummary(AnyFlightRoute(), AnyAircraft(), Enumerable.Empty <Passenger>());

            _scheduledFlightSummaryCalculator.Received().CalculateSummary(Arg.Any <IEnumerable <Passenger> >(), Arg.Any <FlightRoute>());
        }