public PageAirlineFinances(AirlineMVVM airline)
        {
            Airline = airline;
            DataContext = Airline;

            InitializeComponent();

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

            int count = 0;

            while (count < Airline.Airline.DailyOperatingBalanceHistory.Count && count < 5)
            {
                KeyValuePair<DateTime,KeyValuePair<double,double>> value = Airline.Airline.DailyOperatingBalanceHistory[Airline.Airline.DailyOperatingBalanceHistory.Count -count -1];

                incomes.Add(new KeyValuePair<string, int>(value.Key.ToShortDateString(), (int)value.Value.Key));
                expenses.Add(new KeyValuePair<string, int>(value.Key.ToShortDateString(), (int)value.Value.Value));

                count++;
            }

            var demandSeries = new List<SeriesData>();

            string displayName1 = "Income";
            string displayName2 = "Expenses";

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

            cccDOR.DataContext = demandSeries;
        }
        public PageAirlineFleet(AirlineMVVM airline)
        {
            Airline = airline;
            DataContext = Airline;
            SelectedAirliners = new ObservableCollection<FleetAirliner>();

            InitializeComponent();
        }
        public PageAirlineInsurance(AirlineMVVM airline)
        {
            this.Airline = airline;
            this.DataContext = this.Airline;

            this.InitializeComponent();

            this.Loaded += this.PageAirlineInsurance_Loaded;
        }
        public PageAirlineEmployees(AirlineMVVM airline)
        {
            Airline = airline;
            DataContext = Airline;

            Airline.resetFees();

            InitializeComponent();
        }
        public PageAirline(Models.Airlines.Airline airline)
        {
            Airline = new AirlineMVVM(airline);

            HasCodesharing =
                Airline.Airline.Codeshares.Exists(
                    c =>
                        c.Airline1 == GameObject.GetInstance().HumanAirline
                        || c.Airline2 == GameObject.GetInstance().HumanAirline);
            CanHaveAlliance = Airline.Airline.Alliances.Count == 0
                              && GameObject.GetInstance().HumanAirline.Alliances.Count > 0;
            ShowActionMenu = !Airline.Airline.IsHuman && (CanHaveAlliance || !HasCodesharing);

            var airports = Airline.Airline.Airports;
            var routes = Airline.Airline.Routes.OrderByDescending(r => r.Balance);

            var totalProfit = routes.Sum(r => r.Balance);

            ProfitRoutes = new List<RouteProfitMVVM>();
            foreach (var route in routes.Take(Math.Min(5, routes.Count())))
            {
                ProfitRoutes.Add(new RouteProfitMVVM(route, totalProfit));
            }

            MostGates =
                airports.OrderByDescending(a => a.GetAirlineContracts(Airline.Airline).Sum(c => c.NumberOfGates))
                    .Take(Math.Min(5, airports.Count))
                    .ToList();
            MostUsedAircrafts = new List<AirlineFleetSizeMVVM>();

            var types = Airline.Airline.Fleet.Select(a => a.Airliner.Type).Distinct();

            foreach (var type in types)
            {
                var count = Airline.Airline.Fleet.Count(a => a.Airliner.Type == type);

                MostUsedAircrafts.Add(new AirlineFleetSizeMVVM(type, count));
            }

            MostUsedAircrafts =
                MostUsedAircrafts.OrderByDescending(a => a.Count)
                    .Take(Math.Min(5, MostUsedAircrafts.Count))
                    .ToList();

            Loaded += PageAirline_Loaded;

            InitializeComponent();
        }
        public PageAirlineInfo(AirlineMVVM airline)
        {
            Airline = airline;
            DataContext = Airline;
            AirlineScores = new ObservableCollection<AirlineScoreMVVM>();

            AirlineScores.Add(
               new AirlineScoreMVVM(
                   Translator.GetInstance().GetString("PageAirlineRatings", "1012"),
                   Airline.Airline.OverallScore));
            AirlineScores.Add(
                new AirlineScoreMVVM(
                    Translator.GetInstance().GetString("PageAirlineRatings", "1014"),
                    (int)StatisticsHelpers.GetOnTimePercent(Airline.Airline)));
            AirlineScores.Add(
                new AirlineScoreMVVM(
                    Translator.GetInstance().GetString("PageAirlineRatings", "1015"),
                    Math.Max(0,(int)(StatisticsHelpers.GetAirlineFillAverage(Airline.Airline) * 100))));

            InitializeComponent();
        }
        public PageAirlineRatings(AirlineMVVM airline)
        {
            AirlineRatings = new ObservableCollection<AirlineScoreMVVM>();
            AirlineStatistics = new ObservableCollection<AirlineStatisticsMVVM>();
            Airline = airline;
            DataContext = Airline;

            InitializeComponent();

            AirlineRatings.Add(
                new AirlineScoreMVVM(
                    Translator.GetInstance().GetString("PageAirlineRatings", "1007"),
                    Airline.Airline.Ratings.SecurityRating));
            AirlineRatings.Add(
                new AirlineScoreMVVM(
                    Translator.GetInstance().GetString("PageAirlineRatings", "1008"),
                    Airline.Airline.Ratings.SafetyRating));
            AirlineRatings.Add(
                new AirlineScoreMVVM(
                    Translator.GetInstance().GetString("PageAirlineRatings", "1009"),
                    Airline.Airline.Ratings.EmployeeHappinessRating));
            AirlineRatings.Add(
                new AirlineScoreMVVM(
                    Translator.GetInstance().GetString("PageAirlineRatings", "1010"),
                    Airline.Airline.Ratings.CustomerHappinessRating));
            AirlineRatings.Add(
                new AirlineScoreMVVM(
                    Translator.GetInstance().GetString("PageAirlineRatings", "1011"),
                    Airline.Airline.Ratings.MaintenanceRating));

              AirlineStatistics.Add(
                new AirlineStatisticsMVVM(Airline.Airline, StatisticsTypes.GetStatisticsType("Passengers")));
            AirlineStatistics.Add(
                new AirlineStatisticsMVVM(Airline.Airline, StatisticsTypes.GetStatisticsType("Passengers%")));
            AirlineStatistics.Add(
                new AirlineStatisticsMVVM(Airline.Airline, StatisticsTypes.GetStatisticsType("Arrivals")));
        }
        public PageAirlineServices(AirlineMVVM airline)
        {
            Classes = new ObservableCollection<AirlineClassMVVM>();

            foreach (AirlinerClass.ClassType type in Enum.GetValues(typeof(AirlinerClass.ClassType)))
            {
                if ((int)type <= GameObject.GetInstance().GameTime.Year)
                {
                    var rClass = new AirlineClassMVVM(type);

                    foreach (
                        RouteFacility.FacilityType facilityType in Enum.GetValues(typeof(RouteFacility.FacilityType)))
                    {
                        if (GameObject.GetInstance().GameTime.Year >= (int)facilityType)
                        {
                            var facility = new AirlineClassFacilityMVVM(facilityType);

                            facility.Facilities.Clear();

                            foreach (
                                RouteFacility rFacility in
                                    AirlineHelpers.GetRouteFacilities(
                                        GameObject.GetInstance().HumanAirline,
                                        facilityType))
                            {
                                facility.Facilities.Add(rFacility);
                            }

                            facility.SelectedFacility = RouteFacilities.GetBasicFacility(facility.Type);
                                //GetFacilities(rFacility.Type).OrderBy(f => f.ServiceLevel).First();

                            rClass.Facilities.Add(facility);
                        }
                    }
                    Classes.Add(rClass);
                }
            }

            Airline = airline;
            DataContext = Airline;
            Loaded += PageAirlineServices_Loaded;

            InitializeComponent();

            var view = (CollectionView)CollectionViewSource.GetDefaultView(lvFacilities.ItemsSource);
            view.GroupDescriptions.Clear();
            view.SortDescriptions.Clear();

            var groupDescription = new PropertyGroupDescription("Type");
            view.GroupDescriptions.Add(groupDescription);

            var sortTypeDescription = new SortDescription("Type", ListSortDirection.Ascending);
            view.SortDescriptions.Add(sortTypeDescription);

            var sortFacilityDescription = new SortDescription("Facility.Name", ListSortDirection.Ascending);
            view.SortDescriptions.Add(sortFacilityDescription);

            for (int i = 120; i < 300; i += 15)
            {
                cbCancellationPolicy.Items.Add(i);
            }

            cbCancellationPolicy.SelectedItem =
                Airline.Airline.GetAirlinePolicy("Cancellation Minutes").PolicyValue;
        }