Ejemplo n.º 1
0
        //returns the next entry after a specific entry
        private static RouteTimeTableEntry GetNextEntry(RouteTimeTableEntry entry, FleetAirliner airliner, Dictionary <Route, List <RouteTimeTableEntry> > entries, Dictionary <Route, List <RouteTimeTableEntry> > entriesToDelete)
        {
            DayOfWeek day = entry.Day;

            int counter = 0;

            while (counter < 7)
            {
                List <RouteTimeTableEntry> tEntries = airliner.Routes.SelectMany(r => r.TimeTable.Entries.FindAll(e => e.Airliner == airliner && e.Day == day)).ToList();
                tEntries.AddRange(entries.Keys.SelectMany(r => entries[r].FindAll(e => e.Day == day)));
                tEntries.RemoveAll(e => entriesToDelete.Keys.SelectMany(r => entriesToDelete[r]).ToList().Find(te => te == e) == e);

                tEntries = (from e in tEntries orderby e.Time select e).ToList();


                foreach (RouteTimeTableEntry dEntry in tEntries)
                {
                    if (!((dEntry.Day == entry.Day && dEntry.Time <= entry.Time)))
                    {
                        return(dEntry);
                    }
                }
                day++;

                if (day == (DayOfWeek)7)
                {
                    day = (DayOfWeek)0;
                }

                counter++;
            }

            return(null);
        }
Ejemplo n.º 2
0
        public PageFleetMaintenance(FleetAirliner airliner)
        {
            this.Airliner = airliner;
            InitializeComponent();

            setValues();
        }
Ejemplo n.º 3
0
        private void cbAirliner_Checked(object sender, RoutedEventArgs e)
        {
            int maxNumberOfAirliners = this.AirlineFacility.ServiceLevel;

            FleetAirliner airliner = (FleetAirliner)((CheckBox)sender).Tag;

            if (this.AirlinersToMaintain.Count == 0 || (this.AirlinersToMaintain.Exists(a => a.Airliner.Type == airliner.Airliner.Type) && this.AirlinersToMaintain.Count + 1 <= maxNumberOfAirliners))
            {
                this.AirlinersToMaintain.Add(airliner);

                AirlinerType type = this.AirlinersToMaintain[0].Airliner.Type;
                if (this.Classes == null || this.Classes.Count == 0)
                {
                    AirlinerClass eClass = new AirlinerClass(AirlinerClass.ClassType.Economy_Class, ((AirlinerPassengerType)type).MaxSeatingCapacity);
                    eClass.createBasicFacilities(null);
                    this.Classes.Add(eClass);

                    showClasses();
                }

                btnEquipped.IsEnabled = true;
                btnApply.IsEnabled    = true;
            }
            else
            {
                if (this.AirlinersToMaintain.Count == maxNumberOfAirliners)
                {
                    WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2901"), string.Format(Translator.GetInstance().GetString("MessageBox", "2901", "message"), maxNumberOfAirliners), WPFMessageBoxButtons.Ok);
                }

                ((CheckBox)sender).IsChecked = false;
            }
        }
        public PageFleetAirliner(FleetAirliner airliner)
        {
            this.Airliner = new FleetAirlinerMVVM(airliner);
            this.Loaded  += PageFleetAirliner_Loaded;

            InitializeComponent();
        }
Ejemplo n.º 5
0
 //adds a fleet airliner to the airlines fleet
 public void addAirliner(FleetAirliner airliner)
 {
     lock (this.Fleet)
     {
         this.Fleet.Add(airliner);
     }
 }
        public PageAirlinerAdvancedRoute(FleetAirliner airliner, PopUpAirlinerAutoRoutes parent, OnRouteChanged routeChanged)
        {
            this.ParentPage    = parent;
            this.Airliner      = airliner;
            this.RouteChanged += routeChanged;

            InitializeComponent();

            StackPanel panelMain = new StackPanel();

            panelMain.Children.Add(createNewEntryPanel());

            WrapPanel panelFlightTime = new WrapPanel();

            txtStopovers            = UICreator.CreateTextBlock("");
            txtStopovers.Visibility = System.Windows.Visibility.Collapsed;
            txtStopovers.Margin     = new Thickness(0, 0, 10, 0);
            panelFlightTime.Children.Add(txtStopovers);

            txtFlightTime = UICreator.CreateTextBlock("Flight time:");
            panelFlightTime.Children.Add(txtFlightTime);

            panelMain.Children.Add(panelFlightTime);

            this.Content = panelMain;

            cbOrigin.SelectedIndex = 0;
        }
        private void btnTransfer_Click(object sender, RoutedEventArgs e)
        {
            FleetAirliner airliner = (FleetAirliner)((Button)sender).Tag;

            ComboBox cbAirlines = new ComboBox();

            cbAirlines.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbAirlines.SetResourceReference(ComboBox.ItemTemplateProperty, "AirlineLogoItem");
            cbAirlines.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;

            cbAirlines.Items.Add(GameObject.GetInstance().MainAirline);

            foreach (Airline airline in GameObject.GetInstance().MainAirline.Subsidiaries)
            {
                cbAirlines.Items.Add(airline);
            }

            cbAirlines.Items.Remove(airliner.Airliner.Airline);

            cbAirlines.SelectedIndex = 0;

            if (PopUpSingleElement.ShowPopUp(Translator.GetInstance().GetString("PageAirlineFleet", "1010"), cbAirlines) == PopUpSingleElement.ButtonSelected.OK && cbAirlines.SelectedItem != null)
            {
                Airline airline = (Airline)cbAirlines.SelectedItem;
                airliner.Airliner.Airline.removeAirliner(airliner);

                airliner.Airliner.Airline = airline;
                airline.addAirliner(airliner);

                _FleetDelivered.Remove(airliner);

                showFleet();
            }
        }
Ejemplo n.º 8
0
        //returns the next entry after a specific date and with a specific airliner
        public RouteTimeTableEntry getNextEntry(DateTime time, FleetAirliner airliner)
        {
            DateTime dt = new DateTime(time.Year, time.Month, time.Day, time.Hour, time.Minute, time.Second);

            int counter = 0;

            while (counter < 8)
            {
                List <RouteTimeTableEntry> entries = getEntries(dt.DayOfWeek).FindAll(e => airliner == e.Airliner);

                foreach (RouteTimeTableEntry dEntry in (from e in entries orderby e.Time select e))
                {
                    if (!(dEntry.Time <= dt.TimeOfDay && dt.Day == time.Day))
                    {
                        return(dEntry);
                    }
                }
                dt = dt.AddDays(1);

                counter++;
            }

            RouteTimeTableEntry entry = this.Entries.Find(e => e.Airliner == airliner);

            return(entry);
        }
Ejemplo n.º 9
0
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            FleetAirliner airliner = (FleetAirliner)value;

            if (parameter.ToString() == "start")
            {
                if (airliner.HasRoute && airliner.Status == FleetAirliner.AirlinerStatus.Stopped)
                {
                    return(Visibility.Visible);
                }
                else
                {
                    return(Visibility.Collapsed);
                }
            }

            if (parameter.ToString() == "stop")
            {
                if (airliner.HasRoute && airliner.Status != FleetAirliner.AirlinerStatus.Stopped)
                {
                    return(Visibility.Visible);
                }
                else
                {
                    return(Visibility.Collapsed);
                }
            }

            return(Visibility.Collapsed);
        }
Ejemplo n.º 10
0
        private void btnTransfer_Click(object sender, RoutedEventArgs e)
        {
            ComboBox cbAirliners = new ComboBox();

            cbAirliners.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbAirliners.SelectedValuePath   = "Name";
            cbAirliners.DisplayMemberPath   = "Name";
            cbAirliners.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbAirliners.Width = 200;

            foreach (FleetAirliner airliner in getTransferAirliners())
            {
                cbAirliners.Items.Add(airliner);
            }

            cbAirliners.SelectedIndex = 0;

            if (PopUpSingleElement.ShowPopUp(Translator.GetInstance().GetString("PopUpAirlinerRoutes", "1001"), cbAirliners) == PopUpSingleElement.ButtonSelected.OK && cbAirliners.SelectedItem != null)
            {
                FleetAirliner transferAirliner = (FleetAirliner)cbAirliners.SelectedItem;

                foreach (Route route in transferAirliner.Routes)
                {
                    foreach (RouteTimeTableEntry entry in route.TimeTable.Entries.FindAll(en => en.Airliner == transferAirliner))
                    {
                        entry.Airliner = this.Airliner;
                    }
                    this.Airliner.addRoute(route);
                }
                transferAirliner.Routes.Clear();

                showFlights();
            }
        }
Ejemplo n.º 11
0
        private static RouteTimeTableEntry GetNextEntry(RouteTimeTableEntry entry, FleetAirliner airliner, List <RouteTimeTableEntry> entries)
        {
            DayOfWeek day = entry.Day;

            int counter = 0;

            while (counter < 7)
            {
                List <RouteTimeTableEntry> tEntries = entries;

                tEntries = (from e in tEntries orderby e.Time select e).ToList();

                foreach (RouteTimeTableEntry dEntry in tEntries)
                {
                    if (!((dEntry.Day == entry.Day && dEntry.Time <= entry.Time)))
                    {
                        return(dEntry);
                    }
                }
                day++;

                if (day == (DayOfWeek)7)
                {
                    day = (DayOfWeek)0;
                }

                counter++;
            }

            return(null);
        }
Ejemplo n.º 12
0
        public PopUpAirlinerRoutes(FleetAirliner airliner, Boolean isEditable)
        {
            this.Entries         = new Dictionary <Route, List <RouteTimeTableEntry> >();
            this.EntriesToDelete = new Dictionary <Route, List <RouteTimeTableEntry> >();

            this.Airliner   = airliner;
            this.IsEditable = isEditable;

            InitializeComponent();

            this.Title = this.Airliner.Name;

            this.Width = 1200;

            this.Height = this.IsEditable ? 325 : 275;

            this.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

            ScrollViewer scroller = new ScrollViewer();

            //scroller.Margin = new Thickness(10, 10, 10, 10);
            scroller.VerticalScrollBarVisibility   = ScrollBarVisibility.Auto;
            scroller.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto;
            scroller.MaxHeight = this.Height;

            StackPanel mainPanel = new StackPanel();

            mainPanel.Margin = new Thickness(10, 10, 10, 10);
            scroller.Content = mainPanel;


            Grid grdFlights = UICreator.CreateGrid(2);

            grdFlights.ColumnDefinitions[1].Width = new GridLength(200);
            mainPanel.Children.Add(grdFlights);

            lbFlights = new ListBox();
            lbFlights.ItemContainerStyleSelector = new ListBoxItemStyleSelector();
            lbFlights.SetResourceReference(ListBox.ItemTemplateProperty, "QuickInfoItem");
            lbFlights.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;

            Grid.SetColumn(lbFlights, 0);
            grdFlights.Children.Add(lbFlights);

            ScrollViewer panelRoutes = createRoutesPanel();

            Grid.SetColumn(panelRoutes, 1);
            grdFlights.Children.Add(panelRoutes);

            if (this.IsEditable)
            {
                mainPanel.Children.Add(createNewEntryPanel());
                mainPanel.Children.Add(createButtonsPanel());
            }

            this.Content = scroller;

            showFlights();
        }
Ejemplo n.º 13
0
        public static object ShowPopUp(FleetAirliner airliner)
        {
            PopUpWindow window = new PopUpAutogenerateRoute(airliner);

            window.ShowDialog();

            return(window.Selected);
        }
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            FleetAirliner airliner = (FleetAirliner)value;

            Boolean isTransferable = airliner.Airliner.Airline.IsHuman && airliner.Status == FleetAirliner.AirlinerStatus.Stopped && GameObject.GetInstance().MainAirline.Subsidiaries.Count > 0;

            return(isTransferable ? Visibility.Visible : Visibility.Collapsed);
        }
Ejemplo n.º 15
0
        public static object ShowPopUp(FleetAirliner airliner)
        {
            PopUpWindow window = new PopUpHomeBase(airliner);

            window.ShowDialog();

            return(window.Selected == null ? null : window.Selected);
        }
Ejemplo n.º 16
0
        public static object ShowPopUp(FleetAirliner airliner)
        {
            PopUpWindow window = new PopUpEditAirlinerName(airliner);

            window.ShowDialog();

            return(window.Selected);
        }
Ejemplo n.º 17
0
        public static object ShowPopUp(FleetAirliner airliner, Boolean isEditable)
        {
            PopUpWindow window = new PopUpAirlinerRoutes(airliner, isEditable);

            window.ShowDialog();

            return(window.Selected);
        }
        public PageFleetInsurance(FleetAirliner airliner)
        {
            this.DataContext = airliner;
            this.Airliner    = airliner;

            InitializeComponent();

            this.DataContext = this.Airliner;
        }
Ejemplo n.º 19
0
        public PageRoutePlanner(FleetAirliner airliner)
        {
            this.Airliner = airliner;
            this.Entries  = new ObservableCollection <RouteTimeTableEntry>();
            this.Entries.CollectionChanged += Entries_CollectionChanged;

            this.AllRoutes = new List <RoutePlannerItemMVVM>();
            this.Intervals = new ObservableCollection <int>()
            {
                1, 2, 3, 4, 5, 6
            };

            this.Routes = this.Airliner.Airliner.Airline.Routes.Where(r => r.getDistance() <= this.Airliner.Airliner.Type.Range).ToList();

            this.AllRegions = new List <Region>();
            this.AllRegions.Add(Regions.GetRegion("100"));

            var routeRegions = this.Routes.Select(r => r.Destination1.Profile.Country.Region).ToList();

            routeRegions.AddRange(this.Routes.Select(r => r.Destination2.Profile.Country.Region));

            foreach (Region region in routeRegions.Distinct())
            {
                this.AllRegions.Add(region);
            }

            foreach (Route route in this.Airliner.Airliner.Airline.Routes.Where(r => r.getDistance() <= this.Airliner.Airliner.Type.Range))
            {
                this.AllRoutes.Add(new RoutePlannerItemMVVM(route, this.Airliner.Airliner.Type));
            }

            this.OutboundAirports = new List <Airport>();
            var routeAirports = this.Routes.Select(r => r.Destination1).ToList();

            routeAirports.AddRange(this.Routes.Select(r => r.Destination2));

            foreach (Airport airport in routeAirports.Distinct())
            {
                this.OutboundAirports.Add(airport);
            }

            this.StartTimes = new ObservableCollection <TimeSpan>();

            for (int i = 0; i < 20; i++)
            {
                this.StartTimes.Add(new TimeSpan(6, i * 15, 0));
            }

            this.StopoverMinutes = new List <int>()
            {
                45, 60, 75, 90, 105, 120
            };

            this.Loaded += PageRoutePlanner_Loaded;

            InitializeComponent();
        }
Ejemplo n.º 20
0
        private void btnStopFlight_Click(object sender, RoutedEventArgs e)
        {
            FleetAirliner airliner = (FleetAirliner)((Button)sender).Tag;

            airliner.Status = FleetAirliner.AirlinerStatus.Stopped;

            showFleet();

            showRoutes();
        }
Ejemplo n.º 21
0
 public InsuranceClaim(Airline airline, FleetAirliner airliner, Airport airport, DateTime date, int damage)
 {
     this.Damage         = damage;
     this.Airline        = airline;
     this.Airliner       = airliner;
     this.Airport        = airport;
     this.Date           = date;
     this.Index          = GameObject.GetInstance().GameTime.ToString() + airline.ToString() + damage.ToString();
     this.SettlementDate = MathHelpers.GetRandomDate(GameObject.GetInstance().GameTime.AddMonths(2), GameObject.GetInstance().GameTime.AddMonths(24));
 }
        //adds entries for a specific destination and time for each day of the week assigned to an airliner
        public void addDailyEntries(RouteEntryDestination destination, TimeSpan time, FleetAirliner airliner)
        {
            foreach (DayOfWeek day in Enum.GetValues(typeof(DayOfWeek)))
            {
                RouteTimeTableEntry entry = new RouteTimeTableEntry(this, day, time, destination);
                entry.Airliner = airliner;

                this.Entries.Add(entry);
            }
        }
Ejemplo n.º 23
0
        //checks for an airliner should go to service
        private static void CheckForService(FleetAirliner airliner)
        {
            double serviceCheck     = 500000000;
            double sinceLastService = airliner.Airliner.Flown - airliner.Airliner.LastServiceCheck;

            if (sinceLastService > serviceCheck)
            {
                SimulateService(airliner);
            }
        }
Ejemplo n.º 24
0
 public static Boolean IsTimeTableValid(RouteTimeTable timeTable, FleetAirliner airliner, Dictionary <Route, List <RouteTimeTableEntry> > entries, Boolean withSlots = true)
 {
     foreach (RouteTimeTableEntry e in timeTable.Entries)
     {
         if (!IsRouteEntryValid(e, airliner, entries, new Dictionary <Route, List <RouteTimeTableEntry> >(), withSlots))
         {
             return(false);
         }
     }
     return(true);
 }
Ejemplo n.º 25
0
        //simulates the service of a flight
        private static void SimulateService(FleetAirliner airliner)
        {
            double servicePrice = 100000;

            airliner.Airliner.LastServiceCheck = airliner.Airliner.Flown;

            AirlineHelpers.AddAirlineInvoice(airliner.Airliner.Airline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Maintenances, -servicePrice);

            airliner.Statistics.addStatisticsValue(GameObject.GetInstance().GameTime.Year, StatisticsTypes.GetStatisticsType("Airliner_Income"), -servicePrice);

            airliner.GroundedToDate = GameObject.GetInstance().GameTime.AddDays(90);
        }
Ejemplo n.º 26
0
        public FleetAirlinerMVVM(FleetAirliner airliner)
        {
            this.Airliner = airliner;
            this.Classes  = new ObservableCollection <AirlinerClassMVVM>();

            AirlinerClass tClass = this.Airliner.Airliner.Classes[0];

            foreach (AirlinerClass aClass in this.Airliner.Airliner.Classes)
            {
                int maxCapacity;

                if (airliner.Airliner.Type.TypeAirliner == AirlinerType.TypeOfAirliner.Passenger)
                {
                    maxCapacity = ((AirlinerPassengerType)airliner.Airliner.Type).MaxSeatingCapacity;
                }
                else
                {
                    maxCapacity = tClass.RegularSeatingCapacity;
                }

                Boolean changeable = this.Airliner.Airliner.Classes.IndexOf(aClass) > 0;

                int maxSeats;

                if (this.Airliner.Airliner.Classes.Count == 3)
                {
                    if (this.Airliner.Airliner.Classes.IndexOf(aClass) == 1)
                    {
                        maxSeats = maxCapacity - 1 - this.Airliner.Airliner.Classes[2].RegularSeatingCapacity;
                    }
                    else
                    {
                        maxSeats = maxCapacity - 1 - this.Airliner.Airliner.Classes[1].RegularSeatingCapacity;
                    }
                }
                else
                {
                    maxSeats = maxCapacity - 1;
                }


                AirlinerClassMVVM amClass = new AirlinerClassMVVM(aClass.Type, aClass.SeatingCapacity, aClass.RegularSeatingCapacity, maxSeats, changeable);
                this.Classes.Add(amClass);
            }

            this.AMaintenanceInterval = this.Airliner.AMaintenanceInterval;
            this.BMaintenanceInterval = this.Airliner.BMaintenanceInterval;
            this.CMaintenanceInterval = this.Airliner.CMaintenanceInterval;
            this.DMaintenanceInterval = this.Airliner.DMaintenanceInterval;

            this.SchedCMaintenance = this.Airliner.SchedCMaintenance;
            this.SchedDMaintenance = this.Airliner.SchedDMaintenance;
        }
        public PageAirlineEditAirliners(List <FleetAirliner> airliners)
        {
            this.Airliners = airliners;

            this.Loaded += PageAirlineEditAirliners_Loaded;

            this.DataContext = this.Airliners;

            this.Classes  = new ObservableCollection <AirlinerClassMVVM>();
            this.Airliner = getMinimumAirliner();

            foreach (AirlinerClass aClass in this.Airliner.Airliner.Classes)
            {
                int maxCapacity;

                if (this.Airliner.Airliner.Type.TypeAirliner == AirlinerType.TypeOfAirliner.Passenger)
                {
                    maxCapacity = ((AirlinerPassengerType)this.Airliner.Airliner.Type).MaxSeatingCapacity;
                }
                else
                {
                    maxCapacity = 100;
                }

                Boolean changeable = this.Airliner.Airliner.Classes.IndexOf(aClass) > 0;

                int maxSeats;

                if (this.Airliner.Airliner.Classes.Count == 3)
                {
                    if (this.Airliner.Airliner.Classes.IndexOf(aClass) == 1)
                    {
                        maxSeats = maxCapacity - 1 - this.Airliner.Airliner.Classes[2].RegularSeatingCapacity;
                    }
                    else
                    {
                        maxSeats = maxCapacity - 1 - this.Airliner.Airliner.Classes[1].RegularSeatingCapacity;
                    }
                }
                else
                {
                    maxSeats = maxCapacity - 1;
                }


                AirlinerClassMVVM amClass = new AirlinerClassMVVM(aClass, aClass.SeatingCapacity, aClass.RegularSeatingCapacity, maxSeats, changeable);
                this.Classes.Add(amClass);
            }

            InitializeComponent();
        }
Ejemplo n.º 28
0
        //checks if an entry is in occupied slot
        public static Boolean IsRouteEntryInOccupied(RouteTimeTableEntry entry, FleetAirliner airliner)
        {
            var occupiedSlots1 = AirportHelpers.GetOccupiedSlotTimes(entry.DepartureAirport, airliner.Airliner.Airline);
            var occupiedSlots2 = AirportHelpers.GetOccupiedSlotTimes(entry.Destination.Airport, airliner.Airliner.Airline);

            TimeSpan gateTimeBefore = new TimeSpan(0, 15, 0);
            TimeSpan gateTimeAfter  = new TimeSpan(0, 15, 0);

            TimeSpan entryTakeoffTime = new TimeSpan((int)entry.Day, entry.Time.Hours, entry.Time.Minutes, entry.Time.Seconds);
            TimeSpan entryLandingTime = entryTakeoffTime.Add(entry.TimeTable.Route.getFlightTime(entry.Airliner.Airliner.Type));

            if (entryLandingTime.Days > 6)
            {
                entryLandingTime = new TimeSpan(0, entryLandingTime.Hours, entryLandingTime.Minutes, entryLandingTime.Seconds);
            }

            TimeSpan entryStartTakeoffTime = entryTakeoffTime.Subtract(gateTimeBefore);
            TimeSpan entryEndTakeoffTime   = entryTakeoffTime.Add(gateTimeAfter);

            TimeSpan tTakeoffTime = new TimeSpan(entryStartTakeoffTime.Days, entryStartTakeoffTime.Hours, (entryStartTakeoffTime.Minutes / 15) * 15, 0);

            while (tTakeoffTime < entryEndTakeoffTime)
            {
                if (occupiedSlots1.Contains(tTakeoffTime))
                {
                    return(true);
                }

                tTakeoffTime = tTakeoffTime.Add(new TimeSpan(0, 15, 0));
            }

            TimeSpan entryStartLandingTime = entryLandingTime.Subtract(gateTimeBefore);
            TimeSpan entryEndLandingTime   = entryLandingTime.Add(gateTimeAfter);

            TimeSpan tLandingTime = new TimeSpan(entryStartLandingTime.Days, entryStartLandingTime.Hours, (entryStartLandingTime.Minutes / 15) * 15, 0);

            while (tLandingTime < entryEndLandingTime)
            {
                if (occupiedSlots2.Contains(tLandingTime))
                {
                    return(true);
                }

                tLandingTime = tLandingTime.Add(new TimeSpan(0, 15, 0));
            }

            return(false);
        }
Ejemplo n.º 29
0
        public PageAirlinerAutoRoute(FleetAirliner airliner, PopUpAirlinerAutoRoutes parent, OnRouteChanged routeChanged)
        {
            this.ParentPage = parent;

            this.Airliner = airliner;

            this.RouteChanged += routeChanged;

            InitializeComponent();

            StackPanel mainPanel = new StackPanel();

            mainPanel.Children.Add(createAutoGeneratePanel());

            this.Content = mainPanel;
        }
Ejemplo n.º 30
0
        private void cbAirliner_Unchecked(object sender, RoutedEventArgs e)
        {
            FleetAirliner airliner = (FleetAirliner)((CheckBox)sender).Tag;

            this.AirlinersToMaintain.Remove(airliner);

            if (this.AirlinersToMaintain.Count == 0)
            {
                this.Classes.Clear();

                showClasses();

                btnEquipped.IsEnabled = false;
                btnApply.IsEnabled    = false;
            }
        }
Ejemplo n.º 31
0
        private void btnTransfer_Click(object sender, RoutedEventArgs e)
        {
            ComboBox cbAirliners = new ComboBox();

            cbAirliners.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbAirliners.SelectedValuePath   = "Name";
            cbAirliners.DisplayMemberPath   = "Name";
            cbAirliners.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbAirliners.Width = 200;

            long maxDistance = this.Airliner.Airliner.Type.Range;

            long requiredRunway = this.Airliner.Airliner.Type.MinRunwaylength;

            var airliners = GameObject.GetInstance().HumanAirline.Fleet.FindAll(a => a != this.Airliner && a.Routes.Count > 0 && a.Status == FleetAirliner.AirlinerStatus.Stopped && a.Routes.Max(r => r.getDistance()) <= maxDistance);

            foreach (FleetAirliner airliner in airliners)
            {
                cbAirliners.Items.Add(airliner);
            }

            cbAirliners.SelectedIndex = 0;

            if (PopUpSingleElement.ShowPopUp(Translator.GetInstance().GetString("PopUpAirlinerRoutes", "1001"), cbAirliners) == PopUpSingleElement.ButtonSelected.OK && cbAirliners.SelectedItem != null)
            {
                clearTimeTable();

                FleetAirliner transferAirliner = (FleetAirliner)cbAirliners.SelectedItem;

                foreach (Route route in transferAirliner.Routes)
                {
                    foreach (RouteTimeTableEntry entry in route.TimeTable.Entries.FindAll(en => en.Airliner == transferAirliner))
                    {
                        entry.Airliner = this.Airliner;

                        this.Entries.Add(entry);
                    }

                    if (!this.Airliner.Routes.Contains(route))
                    {
                        this.Airliner.addRoute(route);
                        this.Routes.Add(route);
                    }
                }
                transferAirliner.Routes.Clear();
            }
        }
        //returns the next entry after a specific date and with a specific airliner
        public RouteTimeTableEntry getNextEntry(DateTime time, FleetAirliner airliner)
        {
            DateTime dt = new DateTime(time.Year, time.Month, time.Day, time.Hour, time.Minute, time.Second);

            int counter = 0;
            while (counter < 8)
            {

                List<RouteTimeTableEntry> entries = getEntries(dt.DayOfWeek).FindAll(e=>airliner == e.Airliner);

                foreach (RouteTimeTableEntry dEntry in (from e in entries orderby e.Time select e))
                {
                    if (!(dEntry.Time <= dt.TimeOfDay && dt.Day == time.Day))
                        return dEntry;
                }
                dt = dt.AddDays(1);

                counter++;
            }

            RouteTimeTableEntry entry = this.Entries.Find(e => e.Airliner == airliner);
            return entry;
        }
 //returns all entries for a specific airliner
 public List<RouteTimeTableEntry> getEntries(FleetAirliner airliner)
 {
     return this.Entries.FindAll(e => e.Airliner == airliner);
 }