Inheritance: INotifyPropertyChanged
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 txtSearch_TextChanged(object sender, TextChangedEventArgs e)
        {
            string searchText = ((TextBox)e.Source).Text.ToUpper();

            var source = lvDemand.Items as ICollectionView;

            source.Filter = o =>
            {
                if (o != null)
                {
                    DemandMVVM a = o as DemandMVVM;
                    return(a != null && a.Destination.Profile.IATACode.ToUpper().StartsWith(searchText) || a.Destination.Profile.ICAOCode.ToUpper().StartsWith(searchText) || a.Destination.Profile.Name.ToUpper().StartsWith(searchText));
                }
                else
                {
                    return(false);
                }
            };
        }
        private void btnDemandInfo_Click(object sender, RoutedEventArgs e)
        {
            var airport = (DemandMVVM)((Button)sender).Tag;

            SelectedAirport = airport;

            var demandPercent = new List<KeyValuePair<string, int>>();

            int intlDemand = Airport.IntlDemands.Sum(d => d.Passengers) + Airport.IntlDemands.Sum(d => d.Cargo);
            int domesticDemand = Airport.DomesticDemands.Sum(d => d.Passengers) + Airport.DomesticDemands.Sum(d => d.Cargo);

            demandPercent.Add(new KeyValuePair<string,int>(Translator.GetInstance().GetString("PageAirportInfo", "1029"),domesticDemand));
            demandPercent.Add(new KeyValuePair<string,int>(Translator.GetInstance().GetString("PageAirportInfo", "1057"),intlDemand));

            pcDemand.DataContext = demandPercent;

            pcGates.DataContext = SelectedAirport.GatesPercent;

            var demands = new List<KeyValuePair<string,int>>();

            demands.Add(new KeyValuePair<string, int>(Translator.GetInstance().GetString("PageAirportInfo", "1031"), SelectedAirport.Passengers));
            demands.Add(new KeyValuePair<string, int>(Translator.GetInstance().GetString("PageAirportInfo", "1032"), SelectedAirport.Cargo));

            var demands2 = new List<KeyValuePair<string, int>>();

            demands2.Add(new KeyValuePair<string, int>(Translator.GetInstance().GetString("PageAirportInfo", "1031"), SelectedAirport.Destination.GetDestinationPassengersRate(Airport.Airport, AirlinerClass.ClassType.EconomyClass)));
            demands2.Add(new KeyValuePair<string, int>(Translator.GetInstance().GetString("PageAirportInfo", "1032"), SelectedAirport.Destination.GetDestinationCargoRate(Airport.Airport)));

            var demandSeries = new List<SeriesData>();

            string displayName1 = string.Format("{0}-{1}", new AirportCodeConverter().Convert(Airport.Airport), new AirportCodeConverter().Convert(SelectedAirport.Destination));
            string displayName2 = string.Format("{1}-{0}", new AirportCodeConverter().Convert(Airport.Airport), new AirportCodeConverter().Convert(SelectedAirport.Destination));

            demandSeries.Add(new SeriesData { DisplayName = displayName1, Items = demands });
            demandSeries.Add(new SeriesData { DisplayName = displayName2, Items = demands2 });

            cccDemand.DataContext = demandSeries;

            var routes =  new List<KeyValuePair<string,int>>();

             var airlines = SelectedAirport.Destination.AirlineContracts.Select(a=>a.Airline).Distinct();

            foreach (Airline airline in airlines)
            {
                int airlineSeats = airline.Routes.Where(r=>r.Destination1 == SelectedAirport.Destination || r.Destination2 == SelectedAirport.Destination).Sum(r=>r.TimeTable.Entries.Sum(en=>en.Airliner.Airliner.GetTotalSeatCapacity()));

                routes.Add(new KeyValuePair<string,int>(airline.Profile.Name,airlineSeats / 7));
            }

            if (routes.Count == 0)
                routes.Add(new KeyValuePair<string, int>("None", 0));

            pcSeats.DataContext = routes;
        }