/** * @method Project the future for a ticket scenario. * @param scenario - The scenario to project into the future. * @returns An object that represents the projected outcome for future years if the given ticketing scenario is implemented. */ public ProjectedFuture Project(ProjectionScenario scenario) { // Create the object to contain our answer. ProjectedFuture future = new ProjectedFuture(_configuration); // Base these results on the highest year in our application. string highestYearNumber = _configuration.GetHighestYearNumber(); // Determine outcomes. DetermineOutcome(highestYearNumber, future.IfApplied, scenario); DetermineOutcome(highestYearNumber, future.IfNotApplied, null); // We are done computing. Return the result. return(future); }