Ejemplo n.º 1
0
        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);

            if (result == WPFMessageBoxResult.Yes)
            {
                if (!hasCheckin)
                {
                    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, gates, 2);

                AirportContract contract = new AirportContract(GameObject.GetInstance().HumanAirline, airport, GameObject.GetInstance().GameTime, gates, 2, yearlyPayment);

                airport.addAirlineContract(contract);

                demand.Contracted = true;
            }
        }
Ejemplo n.º 2
0
        private void btnRemoveContract_Click(object sender, RoutedEventArgs e)
        {
            ContractMVVM tContract = (ContractMVVM)((Button)sender).Tag;

            AirportContract contract = tContract.Contract;

            double penaltyFee = ((contract.YearlyPayment / 12) * contract.MonthsLeft) / 10;

            var contracts = this.Airport.Airport.AirlineContracts.Where(a => a.Airline == GameObject.GetInstance().HumanAirline&& a != contract).ToList();

            if (!AirportHelpers.CanFillRoutesEntries(this.Airport.Airport, GameObject.GetInstance().HumanAirline, contracts))
            {
                WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2224"), Translator.GetInstance().GetString("MessageBox", "2224", "message"), WPFMessageBoxButtons.Ok);
            }
            else if (contract.Terminal != null)
            {
                WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2226"), string.Format(Translator.GetInstance().GetString("MessageBox", "2226", "message"), contract.Terminal.Name), WPFMessageBoxButtons.Ok);
            }
            else
            {
                WPFMessageBoxResult result = WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2225"), string.Format(Translator.GetInstance().GetString("MessageBox", "2225", "message"), new ValueCurrencyConverter().Convert(penaltyFee)), WPFMessageBoxButtons.YesNo);

                if (result == WPFMessageBoxResult.Yes)
                {
                    AirlineHelpers.AddAirlineInvoice(GameObject.GetInstance().HumanAirline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Purchases, -penaltyFee);

                    this.Airport.removeAirlineContract(tContract);
                }
            }
        }
        private void btnOk_Click(object sender, RoutedEventArgs e)
        {
            int gates  = Convert.ToInt32(nudGates.Value);
            int lenght = Convert.ToInt32(cbLength.SelectedItem);

            double yearlyPayment = AirportHelpers.GetYearlyContractPayment(this.Airport, gates, lenght);

            if (this.Contract == null)
            {
                Boolean payFull = false;
                if (lenght <= 2)
                {
                    payFull = true;
                }
                AirportContract contract = new AirportContract(GameObject.GetInstance().HumanAirline, this.Airport, GameObject.GetInstance().GameTime, gates, lenght, yearlyPayment, payFull);
                this.Selected = contract;
            }
            else
            {
                this.Contract.NumberOfGates = gates;
                this.Contract.Length        = lenght;
                this.Contract.YearlyPayment = yearlyPayment;
                this.Contract.ContractDate  = GameObject.GetInstance().GameTime;
                this.Contract.ExpireDate    = this.Contract.ExpireDate.AddYears(this.Contract.Length);
                this.Selected = this.Contract;
            }



            this.Close();
        }
Ejemplo n.º 4
0
 public ContractMVVM(AirportContract contract)
 {
     this.Contract      = contract;
     this.Airline       = this.Contract.Airline;
     this.NumberOfGates = this.Contract.NumberOfGates;
     this.MonthsLeft    = this.Contract.MonthsLeft;
 }
Ejemplo n.º 5
0
        private void btnSignContract_Click(object sender, RoutedEventArgs e)
        {
            int gates  = Convert.ToInt16(slContractGates.Value);
            int lenght = Convert.ToInt16(slContractLenght.Value);

            Boolean hasCheckin    = this.Airport.Airport.getAirportFacility(GameObject.GetInstance().HumanAirline, AirportFacility.FacilityType.CheckIn).TypeLevel > 0;
            double  yearlyPayment = AirportHelpers.GetYearlyContractPayment(this.Airport.Airport, gates, lenght);

            Boolean payFull = lenght <= 2;

            AirportContract contract = new AirportContract(GameObject.GetInstance().HumanAirline, this.Airport.Airport, GameObject.GetInstance().GameTime, gates, lenght, yearlyPayment, payFull);

            if (!hasCheckin)
            {
                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)
            {
                double payment = (contract.YearlyPayment * contract.Length) * 0.75;
                AirlineHelpers.AddAirlineInvoice(GameObject.GetInstance().HumanAirline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Rents, -payment);
                contract.YearlyPayment = 0;
            }

            this.Airport.addAirlineContract(contract);
        }
        private void btnContract_Click(object sender, RoutedEventArgs e)
        {
            Airport airport    = this.Airport;
            Boolean hasCheckin = airport.getAirportFacility(GameObject.GetInstance().HumanAirline, AirportFacility.FacilityType.CheckIn).TypeLevel > 0;

            object o = PopUpAirportContract.ShowPopUp(airport);

            if (o != null)
            {
                if (!hasCheckin)
                {
                    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);
                }
                AirportContract contract = (AirportContract)o;

                //25 % off if paying up front
                if (contract.PayFull)
                {
                    double payment = (contract.YearlyPayment * contract.Length) * 0.75;
                    AirlineHelpers.AddAirlineInvoice(GameObject.GetInstance().HumanAirline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Rents, -payment);
                    contract.YearlyPayment = 0;
                }

                this.Airport.addAirlineContract(contract);

                showGatesInformation();
                showContracts();
                showTerminals();
            }
        }
        public static object ShowPopUp(AirportContract contract)
        {
            PopUpWindow window = new PopUpAirportContract(contract);

            window.ShowDialog();

            return(window.Selected);
        }
Ejemplo n.º 8
0
 public ContractMVVM(AirportContract contract)
 {
     this.Contract      = contract;
     this.Airline       = this.Contract.Airline;
     this.NumberOfGates = this.Contract.NumberOfGates;
     this.MonthsLeft    = this.Contract.MonthsLeft;
     this.IsHuman       = this.Airline == GameObject.GetInstance().HumanAirline;
 }
Ejemplo n.º 9
0
 public void addAirlineContract(AirportContract contract)
 {
     this.Airport.addAirlineContract(contract);
     this.IsHuman           = GameObject.GetInstance().HumanAirline.Airports.Contains(this.Airport);
     this.NumberOfFreeGates = this.Airport.Terminals.NumberOfFreeGates;
     this.NumberOfAirlines  = this.Airport.AirlineContracts.Select(c => c.Airline).Distinct().Count();
     this.NumberOfRoutes    = AirportHelpers.GetAirportRoutes(this.Airport).Count;
 }
Ejemplo n.º 10
0
        public async Task <HttpResponseMessage> UpdateAirport(AirportContract airportContract, string updateAirportUrl)
        {
            var response = await _httpClient.PutAsync(
                updateAirportUrl,
                new StringContent(JsonConvert.SerializeObject(airportContract),
                                  Encoding.UTF8, "application/json"));

            return(response);
        }
Ejemplo n.º 11
0
        public Airport(string name, string color, string latitude, string longitude)
        {
            var loggerFactory = LoggerFactory.Create(builder =>
            {
                builder.AddConsole();
            });

            _logger          = loggerFactory.CreateLogger <Airport>();
            _airportContract = AirportContractExtension.GetAirportContractWithValidatedOrDefaultValues(name, color, latitude, longitude);
        }
Ejemplo n.º 12
0
        public PopUpExtendContract(AirportContract contract)
        {
            this.Contract    = contract;
            this.DataContext = contract;

            this.ExpireDate    = this.Contract.ExpireDate;
            this.NumberOfGates = this.Contract.NumberOfGates;

            this.HasFreeGates = this.Contract.Airport.Terminals.getFreeGates() > 0;

            InitializeComponent();
        }
        private void btnEditContract_Click(object sender, RoutedEventArgs e)
        {
            AirportContract contract = (AirportContract)((Button)sender).Tag;
            object          o        = PopUpAirportContract.ShowPopUp(contract);

            if (o != null)
            {
                this.Airport.removeAirlineContract(contract);
                this.Airport.addAirlineContract((AirportContract)o);
                showContracts();
            }
        }
Ejemplo n.º 14
0
 public void AddAirport(AirportContract airportContract)
 {
     if (!_trafficInfoContract.Airports.Select(a => a.Name)
         .ToList()
         .Contains(airportContract.Name))
     {
         _trafficInfoContract.Airports.Add(airportContract);
     }
     else
     {
         throw new Exception(airportContract.Name + " already exists");
     }
 }
Ejemplo n.º 15
0
        public IActionResult AddAirport([FromBody] AirportContract airportContract)
        {
            try
            {
                _trafficInfoService.AddAirport(airportContract);

                return(Ok());
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Ejemplo n.º 16
0
        //adds an airport contract for an airline to an airport
        public static void AddAirlineContract(AirportContract contract)
        {
            contract.Airport.addAirlineContract(contract);

            AirportFacility checkinFacility = AirportFacilities.GetFacilities(AirportFacility.FacilityType.CheckIn).Where(f => f.TypeLevel == 1).First();
            AirportFacility ticketFacility  = AirportFacilities.GetFacilities(AirportFacility.FacilityType.TicketOffice).Where(f => f.TypeLevel == 1).First();
            AirportFacility serviceFacility = AirportFacilities.GetFacilities(AirportFacility.FacilityType.Service).Where(f => f.TypeLevel == 1).First();
            AirportFacility cargoTerminal   = AirportFacilities.GetFacilities(AirportFacility.FacilityType.Cargo).Find(f => f.TypeLevel > 0);

            if (contract.Type == AirportContract.ContractType.Full_Service)
            {
                if (contract.Airport.getAirlineAirportFacility(null, AirportFacility.FacilityType.Cargo).Facility.TypeLevel < cargoTerminal.TypeLevel)
                {
                    contract.Airport.addAirportFacility(null, cargoTerminal, GameObject.GetInstance().GameTime);
                }

                if (contract.Airport.getAirlineAirportFacility(null, AirportFacility.FacilityType.CheckIn).Facility.TypeLevel < checkinFacility.TypeLevel)
                {
                    contract.Airport.addAirportFacility(null, checkinFacility, GameObject.GetInstance().GameTime);
                }

                if (contract.Airport.getAirlineAirportFacility(null, AirportFacility.FacilityType.TicketOffice).Facility.TypeLevel < ticketFacility.TypeLevel)
                {
                    contract.Airport.addAirportFacility(null, ticketFacility, GameObject.GetInstance().GameTime);
                }

                if (contract.Airport.getAirlineAirportFacility(null, AirportFacility.FacilityType.Service).Facility.TypeLevel < serviceFacility.TypeLevel)
                {
                    contract.Airport.addAirportFacility(null, serviceFacility, GameObject.GetInstance().GameTime);
                }
            }
            if (contract.Type == AirportContract.ContractType.Medium_Service)
            {
                if (contract.Airport.getAirlineAirportFacility(null, AirportFacility.FacilityType.CheckIn).Facility.TypeLevel < checkinFacility.TypeLevel)
                {
                    contract.Airport.addAirportFacility(null, checkinFacility, GameObject.GetInstance().GameTime);
                }

                if (contract.Airport.getAirlineAirportFacility(null, AirportFacility.FacilityType.TicketOffice).Facility.TypeLevel < ticketFacility.TypeLevel)
                {
                    contract.Airport.addAirportFacility(null, ticketFacility, GameObject.GetInstance().GameTime);
                }
            }
            if (contract.Type == AirportContract.ContractType.Low_Service)
            {
                if (contract.Airport.getAirlineAirportFacility(null, AirportFacility.FacilityType.CheckIn).Facility.TypeLevel < checkinFacility.TypeLevel)
                {
                    contract.Airport.addAirportFacility(null, checkinFacility, GameObject.GetInstance().GameTime);
                }
            }
        }
Ejemplo n.º 17
0
        //adds an airline contract to the airport
        public void addAirlineContract(AirportContract contract)
        {
            this.Airport.addAirlineContract(contract);

            this.Contracts.Add(new ContractMVVM(contract));

            this.FreeGates = this.Airport.Terminals.NumberOfFreeGates;


            this.CanBuildHub = this.Contracts.Count(c => c.Airline == GameObject.GetInstance().HumanAirline) > 0;

            foreach (AirportTerminalMVVM terminal in Terminals)
            {
                terminal.FreeGates = terminal.Terminal.getFreeGates();
            }
        }
Ejemplo n.º 18
0
        public void UpdateAirport(AirportContract airportContract)
        {
            if (!_trafficInfoContract.Airports.Select(a => a.Name)
                .ToList()
                .Contains(airportContract.Name))
            {
                throw new Exception(airportContract.Name + " does not exist");
            }
            else
            {
                var airportToUpdate = _trafficInfoContract.Airports.First(p => p.Name == airportContract.Name);

                //new presentation model lat lon readonly as they do not change
                airportToUpdate.IsGoodWeather = airportContract.IsGoodWeather;
            }
        }
Ejemplo n.º 19
0
        public ActionResult AirportEdit(
            System.Guid airportId
            )
        {
            ViewBag.AirportId = airportId;

            var airportContract = new AirportContract();

            airportContract.Airport =
                new CrudeAirportServiceClient().FetchByAirportId(airportId);

            ViewBag.AirportTypeRcd =
                new SelectList(new CrudeAirportTypeRefServiceClient().FetchAll(),
                               "AirportTypeRcd",
                               "AirportTypeName",
                               airportContract.Airport.AirportTypeRcd
                               );

            ViewBag.CityId =
                new SelectList(new CrudeCityServiceClient().FetchAll(),
                               "CityId",
                               "CityName",
                               airportContract.Airport.CityId
                               );

            ViewBag.ProductId =
                new SelectList(new CrudeProductServiceClient().FetchAll(),
                               "ProductId",
                               "ProductName",
                               airportContract.Airport.ProductId
                               );

            ViewBag.TimezoneId =
                new SelectList(new CrudeTimezoneServiceClient().FetchAll(),
                               "TimezoneId",
                               "TimezoneName",
                               airportContract.Airport.TimezoneId
                               );

            ViewBag.DefaultUserName =
                new CrudeDefaultUserServiceClient().FetchByDefaultUserId(airportContract.Airport.UserId).DefaultUserName;

            return(View(
                       "~/Views/Templates/Airport/Airport/AirportEdit.cshtml",
                       airportContract
                       ));
        }
Ejemplo n.º 20
0
        public static void RentGates(Airport airport, Airline airline, int gates)
        {
            int             currentgates = airport.AirlineContracts.Where(a => a.Airline == airline).Sum(c => c.NumberOfGates);
            AirportContract contract     = new AirportContract(airline, airport, GameObject.GetInstance().GameTime, gates, 20, GetYearlyContractPayment(airport, gates, 20));

            if (currentgates == 0)
            {
                airport.addAirlineContract(contract);
            }
            else
            {
                foreach (AirportContract c in airport.AirlineContracts.Where(a => a.Airline == airline))
                {
                    c.NumberOfGates += gates;
                }
            }
        }
Ejemplo n.º 21
0
        private void btnDeleteFacility_Click(object sender, RoutedEventArgs e)
        {
            AirlineAirportFacilityMVVM facility = (AirlineAirportFacilityMVVM)((Button)sender).Tag;

            Boolean hasHub = this.Airport.Airport.getHubs().Count(h => h.Airline == GameObject.GetInstance().HumanAirline) > 0;

            Boolean hasCargoRoute           = GameObject.GetInstance().HumanAirline.Routes.Exists(r => (r.Destination1 == this.Airport.Airport || r.Destination2 == this.Airport.Airport) && r.Type == Model.AirlinerModel.RouteModel.Route.RouteType.Cargo);
            Boolean airportHasCargoTerminal = this.Airport.Airport.getCurrentAirportFacility(null, AirportFacility.FacilityType.Cargo) != null && this.Airport.Airport.getCurrentAirportFacility(null, AirportFacility.FacilityType.Cargo).TypeLevel > 0;

            AirportContract contract = this.Airport.Contracts.Where(a => a.Airline == GameObject.GetInstance().HumanAirline) == null ? null :this.Airport.Contracts.Where(a => a.Airline == GameObject.GetInstance().HumanAirline).First().Contract;

            Boolean isMinimumServiceFacility = facility.Facility.Facility.TypeLevel == 1 && facility.Facility.Facility.Type == AirportFacility.FacilityType.Service && this.Airport.Airport.hasAsHomebase(GameObject.GetInstance().HumanAirline) && (contract == null || contract.Type != AirportContract.ContractType.Full_Service);
            Boolean isMinimumHubFacility     = facility.Facility.Facility.Type == AirportFacility.FacilityType.Service && hasHub && facility.Facility.Facility == Hub.MinimumServiceFacility && (contract == null || contract.Type == AirportContract.ContractType.Full || contract.Type != AirportContract.ContractType.Medium_Service);
            Boolean isMinimumCheckinFacility = facility.Facility.Facility.Type == AirportFacility.FacilityType.CheckIn && facility.Facility.Facility.TypeLevel == 1 && contract != null && contract.Type == AirportContract.ContractType.Full;

            if (isMinimumCheckinFacility)
            {
                WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2230"), Translator.GetInstance().GetString("MessageBox", "2230", "message"), WPFMessageBoxButtons.Ok);
            }
            else if (isMinimumServiceFacility)
            {
                WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2203"), Translator.GetInstance().GetString("MessageBox", "2203", "message"), WPFMessageBoxButtons.Ok);
            }
            else if (isMinimumHubFacility)
            {
                WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2214"), string.Format(Translator.GetInstance().GetString("MessageBox", "2214", "message"), Hub.MinimumServiceFacility.Name), WPFMessageBoxButtons.Ok);
            }
            else if (facility.Facility.Facility.Type == AirportFacility.FacilityType.Cargo && facility.Facility.Facility.TypeLevel == 1 && hasCargoRoute && !airportHasCargoTerminal)
            {
                WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2223"), Translator.GetInstance().GetString("MessageBox", "2223", "message"), WPFMessageBoxButtons.Ok);
            }
            else
            {
                WPFMessageBoxResult result = WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2204"), string.Format(Translator.GetInstance().GetString("MessageBox", "2204", "message"), facility.Facility.Facility.Name), WPFMessageBoxButtons.YesNo);

                if (result == WPFMessageBoxResult.Yes)
                {
                    this.Airport.removeAirlineFacility(facility);

                    if (facility.Facility.Facility.Type == AirportFacility.FacilityType.Cargo && facility.Facility.Facility.TypeLevel == 1)
                    {
                        GameObject.GetInstance().HumanAirline.removeAirport(this.Airport.Airport);
                    }
                }
            }
        }
Ejemplo n.º 22
0
        private void btnExtendContract_Click(object sender, RoutedEventArgs e)
        {
            ContractMVVM tContract = (ContractMVVM)((Button)sender).Tag;

            AirportContract contract = new AirportContract(tContract.Contract.Airline, tContract.Contract.Airport, tContract.Contract.Type, tContract.Contract.ContractDate, tContract.Contract.NumberOfGates, tContract.Contract.Length, tContract.Contract.YearlyPayment, tContract.Contract.AutoRenew);

            object o = PopUpExtendContract.ShowPopUp(contract);

            if (o != null)
            {
                AirportContract nContract = (AirportContract)o;

                tContract.setNumberOfGates(nContract.NumberOfGates);
                tContract.setExpireDate(nContract.ExpireDate);
                tContract.Contract.AutoRenew = nContract.AutoRenew;
            }
        }
Ejemplo n.º 23
0
        public ActionResult AirportCreate([Bind()] AirportContract airportContract, System.String airportTypeRcd, System.Guid cityId, System.Guid productId, System.Guid timezoneId)
        {
            if (ModelState.IsValid)
            {
                airportContract.Airport.AirportTypeRcd = airportTypeRcd;
                airportContract.Airport.CityId         = cityId;
                airportContract.Airport.ProductId      = productId;
                airportContract.Airport.TimezoneId     = timezoneId;
                new CrudeAirportServiceClient().Insert(airportContract.Airport);

                return(RedirectToAction("AirportIndex"));
            }

            return(View(
                       "~/Views/Templates/Airport/Airport/AirportCreate.cshtml",
                       airportContract
                       ));
        }
Ejemplo n.º 24
0
        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);
        }
Ejemplo n.º 25
0
        private void btnContract_Click(object sender, RoutedEventArgs e)
        {
            AirportMVVM airport = (AirportMVVM)((Button)sender).Tag;

            Boolean hasCheckin = airport.Airport.getAirportFacility(GameObject.GetInstance().HumanAirline, AirportFacility.FacilityType.CheckIn).TypeLevel > 0;

            int gates = Math.Min(2, airport.Airport.Terminals.NumberOfFreeGates);

            //WPFMessageBoxResult result = WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2222"), string.Format(Translator.GetInstance().GetString("MessageBox", "2222", "message"),gates, airport.Airport.Profile.Name), WPFMessageBoxButtons.YesNo);

            object o = PopUpAirportContract.ShowPopUp(airport.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.Airport.addAirportFacility(GameObject.GetInstance().HumanAirline, checkinFacility, GameObject.GetInstance().GameTime);
                    AirlineHelpers.AddAirlineInvoice(GameObject.GetInstance().HumanAirline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Purchases, -checkinFacility.Price);
                }

                //AirportHelpers.RentGates(airport.Airport, GameObject.GetInstance().HumanAirline, contractType, gates, 2);

                double yearlyPayment = AirportHelpers.GetYearlyContractPayment(airport.Airport, contractType, gates, 2);

                AirportContract contract = new AirportContract(GameObject.GetInstance().HumanAirline, airport.Airport, contractType, GameObject.GetInstance().GameTime, gates, 2, yearlyPayment, true);

                airport.addAirlineContract(contract);

                for (int i = 0; i < gates; i++)
                {
                    Gate gate = airport.Airport.Terminals.getGates().Where(g => g.Airline == null).First();
                    gate.Airline = GameObject.GetInstance().HumanAirline;
                }
            }
        }
Ejemplo n.º 26
0
        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;
            }
        }
 public PopUpAirportContract(AirportContract contract) : this(contract.Airport, contract.Airport.Terminals.getFreeGates() + contract.NumberOfGates)
 {
     this.Contract         = contract;
     nudGates.Value        = contract.NumberOfGates;
     cbLength.SelectedItem = contract.Length;
 }
Ejemplo n.º 28
0
 public static void SetDestinationAirportData(this PlaneContract planeContract, AirportContract airportContract)
 {
     planeContract.DestinationAirportName      = airportContract.Name;
     planeContract.DestinationAirportLatitude  = airportContract.Latitude;
     planeContract.DestinationAirportLongitude = airportContract.Longitude;
     planeContract.Color = airportContract.Color;
 }
Ejemplo n.º 29
0
        public static void SetNewDestinationAndDepartureAirports(this PlaneContract planeContract, AirportContract newDestinationAirportContract)
        {
            planeContract.DepartureAirportName      = planeContract.DestinationAirportName;
            planeContract.DepartureAirportLatitude  = planeContract.DestinationAirportLatitude;
            planeContract.DepartureAirportLongitude = planeContract.DestinationAirportLongitude;

            planeContract.SetDestinationAirportData(newDestinationAirportContract);
        }
Ejemplo n.º 30
0
 public static void SetDepartureAirportData(this PlaneContract planeContract, AirportContract airportContract)
 {
     planeContract.DepartureAirportName      = airportContract.Name;
     planeContract.DepartureAirportLatitude  = airportContract.Latitude;
     planeContract.DepartureAirportLongitude = airportContract.Longitude;
 }