예제 #1
0
        public MainViewModel()
        {
            Flights            = new ObservableCollection <Flug>();
            DisplayedContainer = new ObservableCollection <Container>();
            Containerliste1    = new ObservableCollection <Container>();
            Container1         = new Container();
            Container2         = new Container();
            Produkte           = new ObservableCollection <Produkt>();

            Produkte.Add(new Produkt()
            {
                Produktname = "Banane"
            });
            Produkte.Add(new Produkt()
            {
                Produktname = "XBox One"
            });
            Produkte.Add(new Produkt()
            {
                Produktname = "Apfel"
            });

            Container1.Produkte = Produkte;
            Container2.Produkte = Produkte;

            Containerliste1.Add(Container1);
            Containerliste1.Add(Container2);

            Flug Flug1 = new Flug()
            {
                Flugnummer      = "F34234",
                Containerliste  = Containerliste1,
                Containeranzahl = Containerliste1.Count
            };

            Flights.Add(Flug1);

            DeleteContainerBtnClickCmd = new RelayCommand <Container>(DeleteContainer, true);

            DeleteAllBtnClickCmd = new RelayCommand(DeleteAllContainer,
                                                    () => {
                return(CheckContainer());
            });

            if (IsInDesignMode)
            {
                SelectedFlight = Flug1;
            }
            ;


            // Kommunikation:
            Server = new Server(GuiUpdater);
        }
예제 #2
0
        private void GuiUpdater(string msg)
        {
            App.Current.Dispatcher.Invoke(
                () =>
            {
                Console.WriteLine(msg);
                // Example string: F4716:(Bananen,Autoreifen,);(Autoreifen,,)
                string[] split = msg.Split(':');

                /* split =
                 * [0] F4716
                 * [1] (Bananen,Autoreifen,);(Autoreifen,,)
                 */
                Flug newFlight = new Flug()
                {
                    Flugnummer     = split[0],
                    Containerliste = new ObservableCollection <Container>()
                };

                // Alten Flug rauslöschen da neuer reingekommen ist:
                foreach (var flug in Flights)
                {
                    if (flug.Flugnummer.Equals(split[0]))
                    {
                        Flights.Remove(flug);
                        break;
                    }
                }

                string[] splitContainer = split[1].Split(';');

                /* splitContainer =
                 * [0] (Bananen,Autoreifen,)
                 * [1] (Autoreifen,,)
                 */

                foreach (var item in splitContainer)
                {
                    string CleanCont      = item.Replace("{", "");             // "{" entfernen
                    CleanCont             = CleanCont.Replace("}", "");        // "}" entfernen
                    string[] splitFreight = CleanCont.Split(',');              // splitten je "," -> [0] Bananen [1] Autoreifen

                    ObservableCollection <Produkt> Produktsammlung = new ObservableCollection <Produkt>();
                    Produktsammlung.Add(new Produkt()
                    {
                        Produktname = splitFreight[0]
                    });
                    if (!splitFreight[1].Equals(""))
                    {
                        Produktsammlung.Add(new Produkt()
                        {
                            Produktname = splitFreight[1]
                        });

                        if (!splitFreight[2].Equals(""))
                        {
                            Produktsammlung.Add(new Produkt()
                            {
                                Produktname = splitFreight[2]
                            });
                        }
                    }
                    Container newcontainer = new Container();
                    newcontainer.Produkte  = Produktsammlung;

                    newFlight.Containerliste.Add(newcontainer);
                }

                newFlight.Containeranzahl = newFlight.Containerliste.Count();
                Flights.Add(newFlight);
                ProduktanzahlBerechnen();
            });
        }