//returns the yearly payment for a number of gates public static double GetYearlyContractPayment(Airport airport, AirportContract.ContractType type, int gates, int length) { double basePrice = 0; if (type == AirportContract.ContractType.Full) { basePrice = airport.getGatePrice() * 12; } if (type == AirportContract.ContractType.Low_Service) { basePrice = airport.getGatePrice() * 13; } if (type == AirportContract.ContractType.Medium_Service) { basePrice = airport.getGatePrice() * 17; } if (type == AirportContract.ContractType.Full_Service) { basePrice = airport.getGatePrice() * 20; } double lengthFactor = 100 - length; return(gates * (basePrice * (lengthFactor / 100))); }
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { int gates = System.Convert.ToInt16(values[0]); int lenght = System.Convert.ToInt16(values[1]); AirportContract.ContractType contractType = (AirportContract.ContractType)values[2]; Airport airport = (Airport)values[3]; return(new ValueCurrencyConverter().Convert(AirportHelpers.GetYearlyContractPayment(airport, contractType, gates, lenght))); }
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { Airport airport = (Airport)values[0]; AirportContract.ContractType type = (AirportContract.ContractType)Enum.Parse(typeof(AirportContract.ContractType), values[1].ToString(), true); double price = AirportHelpers.GetYearlyContractPayment(airport, type, 2, 2); return(string.Format("({0})", new ValueCurrencyConverter().Convert(price))); }
//rents a "standard" amount of gates at an airport for an airline public static Boolean RentGates(Airport airport, Airline airline, AirportContract.ContractType type) { int maxGates = airport.Terminals.getFreeGates(); int gatesToRent = Math.Min(maxGates, (int)(airline.Mentality) + 2); if (gatesToRent == 0) { return(false); } RentGates(airport, airline, type, gatesToRent); return(true); }
private void btnSignContract_Click(object sender, RoutedEventArgs e) { int gates = Convert.ToInt16(slContractGates.Value); int length = Convert.ToInt16(slContractLenght.Value); Boolean hasCheckin = this.Airport.Airport.getAirportFacility(GameObject.GetInstance().HumanAirline, AirportFacility.FacilityType.CheckIn).TypeLevel > 0; AirportContract.ContractType contractType = (AirportContract.ContractType)cbContractType.SelectedItem; Boolean autoRenew = cbAutoRenew.IsChecked.Value; double yearlyPayment = AirportHelpers.GetYearlyContractPayment(this.Airport.Airport, contractType, gates, length); Boolean payFull = length <= 2; AirportContract contract = new AirportContract(GameObject.GetInstance().HumanAirline, this.Airport.Airport, contractType, GameObject.GetInstance().GameTime, gates, length, yearlyPayment, autoRenew, payFull); if (!hasCheckin && contractType == AirportContract.ContractType.Full) { AirportFacility checkinFacility = AirportFacilities.GetFacilities(AirportFacility.FacilityType.CheckIn).Find(f => f.TypeLevel == 1); this.Airport.Airport.addAirportFacility(GameObject.GetInstance().HumanAirline, checkinFacility, GameObject.GetInstance().GameTime); AirlineHelpers.AddAirlineInvoice(GameObject.GetInstance().HumanAirline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Purchases, -checkinFacility.Price); } //25 % off if paying up front if (contract.PayFull && contractType == AirportContract.ContractType.Full) { double payment = (contract.YearlyPayment * contract.Length) * 0.75; AirlineHelpers.AddAirlineInvoice(GameObject.GetInstance().HumanAirline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Rents, -payment); contract.YearlyPayment = 0; } for (int i = 0; i < gates; i++) { Gate gate = this.Airport.Airport.Terminals.getGates().Where(g => g.Airline == null).First(); gate.Airline = GameObject.GetInstance().HumanAirline; } this.Airport.addAirlineContract(contract); }
private void btnDemandContract_Click(object sender, RoutedEventArgs e) { DemandMVVM demand = (DemandMVVM)((Button)sender).Tag; Airport airport = demand.Destination; Boolean hasCheckin = airport.getAirportFacility(GameObject.GetInstance().HumanAirline, AirportFacility.FacilityType.CheckIn).TypeLevel > 0; int gates = Math.Min(2, airport.Terminals.NumberOfFreeGates); //WPFMessageBoxResult result = WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2222"), string.Format(Translator.GetInstance().GetString("MessageBox", "2222", "message"), gates, airport.Profile.Name), WPFMessageBoxButtons.YesNo); object o = PopUpAirportContract.ShowPopUp(airport); if (o != null) { AirportContract.ContractType contractType = (AirportContract.ContractType)o; if (!hasCheckin && contractType == AirportContract.ContractType.Full) { AirportFacility checkinFacility = AirportFacilities.GetFacilities(AirportFacility.FacilityType.CheckIn).Find(f => f.TypeLevel == 1); airport.addAirportFacility(GameObject.GetInstance().HumanAirline, checkinFacility, GameObject.GetInstance().GameTime); AirlineHelpers.AddAirlineInvoice(GameObject.GetInstance().HumanAirline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Purchases, -checkinFacility.Price); } double yearlyPayment = AirportHelpers.GetYearlyContractPayment(airport, contractType, gates, 2); AirportContract contract = new AirportContract(GameObject.GetInstance().HumanAirline, airport, contractType, GameObject.GetInstance().GameTime, gates, 2, yearlyPayment, true); AirportHelpers.AddAirlineContract(contract); for (int i = 0; i < gates; i++) { Gate gate = airport.Terminals.getGates().Where(g => g.Airline == null).First(); gate.Airline = GameObject.GetInstance().HumanAirline; } demand.Contracted = true; } }
public static void RentGates(Airport airport, Airline airline, AirportContract.ContractType type, int gates, int length = 20) { int currentgates = airport.AirlineContracts.Where(a => a.Airline == airline).Sum(c => c.NumberOfGates); AirportContract contract = new AirportContract(airline, airport, type, GameObject.GetInstance().GameTime, gates, length, GetYearlyContractPayment(airport, type, gates, length), true); if (currentgates == 0) { AddAirlineContract(contract); } else { foreach (AirportContract c in airport.AirlineContracts.Where(a => a.Airline == airline)) { c.NumberOfGates += gates; } } for (int i = 0; i < gates; i++) { Gate gate = airport.Terminals.getGates().Where(g => g.Airline == null).First(); gate.Airline = airline; } }
//returns if an airline has a contract of a specific type public Boolean hasContractType(Airline airline, AirportContract.ContractType type) { return(this.AirlineContracts.Exists(c => c.Airline == airline && c.Type == type)); }
private void rbContractType_Checked(object sender, RoutedEventArgs e) { string type = ((RadioButton)sender).Tag.ToString(); this.SelectedType = (AirportContract.ContractType)Enum.Parse(typeof(AirportContract.ContractType), type, true); }