public RulesManager(IBoardingArea boardingArea) { _rules = new List <IRule>() { new FlightOfficerRule(), new PrisonerRule(), new StewardessRule() }; _boardingArea = boardingArea; }
private void CheckIfPrisonerIsAloneWithPassengers(IBoardingArea boardingArea) { var prisonerIsAlone = boardingArea.GetBoardingAreaManager().PrisonerIsPresent() && !boardingArea.GetBoardingAreaManager().CoopIsPresent() && boardingArea.GetBoardingAreaManager().CountPassengers() > 1; if (prisonerIsAlone) { AddError(ErrorMessages.PrisonerNotAloneWithPassengers); } }
private void CheckIfFlightOfficerIsNotAloneWithCabinChief(IBoardingArea boardingArea) { var thereAreNotFlightOfficers = boardingArea.GetBoardingAreaManager().CountFlightOfficers() == 0; var thereAreMoreThanTwoPeople = boardingArea.GetBoardingAreaManager().CountPassengers() > 2; var FlightOfficersNotAlone = thereAreMoreThanTwoPeople || thereAreNotFlightOfficers || !boardingArea.GetBoardingAreaManager().CabinChiefIsPresent(); if (!FlightOfficersNotAlone) { AddError(ErrorMessages.FlightOfficersNotAloneWithCabinChief); } }
private void CheckIfStewardessIsNotAloneWithPilot(IBoardingArea boardingArea) { var thereAreNotStewardess = boardingArea.GetBoardingAreaManager().CountStewardesses() == 0; var thereAreMoreThanTwoPeople = boardingArea.GetBoardingAreaManager().CountPassengers() > 2; var stewardessIsAlone = thereAreMoreThanTwoPeople || thereAreNotStewardess || !boardingArea.GetBoardingAreaManager().PilotIsPresent(); if (!stewardessIsAlone) { AddError(ErrorMessages.StewardessesNotAloneWithPilot); } }
public ApplicationManager() { _airplane = new Airplane(); _departureGate = new DepartureGate(InitializePassengers()); _smarthFortwo = new SmartFortwo(_departureGate, _airplane); TypeTranslator = new PassengerTypeTranslator(); _rulesManager = new List <IRulesManager> { new RulesManager(_airplane), new RulesManager(_departureGate), new RulesManager(_smarthFortwo) }; }
public RulesManager(IBoardingArea boardingArea, params IRule[] rules) { _boardingArea = boardingArea; _rules = new List <IRule>(rules); }
public void CheckRules(IBoardingArea boardingArea) { CheckIfFlightOfficerIsNotAloneWithCabinChief(boardingArea); }
public SmartFortwo(IBoardingArea departurGate, IBoardingArea airplane) { _departurGate = departurGate; _airplane = airplane; _boardingAreaManager = new BoardingAreaManager(); }
public void CheckRules(IBoardingArea boardingArea) { CheckIfStewardessIsNotAloneWithPilot(boardingArea); }
public void CheckRules(IBoardingArea boardingArea) { CheckIfPrisonerIsAloneWithPassengers(boardingArea); }