private void updateClassFacilities()
        {
            foreach (AirlinerClass.ClassType type in Enum.GetValues(typeof(AirlinerClass.ClassType)))
            {
                AirlineClassMVVM rClass = Classes.FirstOrDefault(c => c.Type == type);

                if (rClass != null)
                {
                    foreach (
                        RouteFacility.FacilityType facilityType in Enum.GetValues(typeof(RouteFacility.FacilityType)))
                    {
                        if (GameObject.GetInstance().GameTime.Year >= (int)facilityType)
                        {
                            AirlineClassFacilityMVVM facility =
                                rClass.Facilities.FirstOrDefault(c => c.Type == facilityType);

                            if (facility == null)
                            {
                                facility = new AirlineClassFacilityMVVM(facilityType);

                                rClass.Facilities.Add(facility);
                            }

                            facility.Facilities.Clear();

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

                            facility.SelectedFacility = RouteFacilities.GetBasicFacility(facility.Type);
                        }
                    }
                }
            }
        }
        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;
        }