Пример #1
0
        // Da keine Konsoleneingaben gefordert sind, werden die Konsoleneingaben per Zufall durch generateRandomNumber() simuliert
        // Annahme: Es handelt sich immer um eine Session d.h. pro Session 1 Bestellung. Aus diesem Grund kann pro Bestellung nur jeweils eins der Services ausgewählt werden ODER
        // der allumfängliche Montage-, und Funktionstest-Service, der alle angebotenen Services beinhaltet und die Auswahl von weiteren Services obselet macht.
        // Annahme2: Bei Computerteilen besteht diese Beschränkung nicht. Der User kann z.B. pro Bestellung 5x die gleiche Grafikkarte kaufen.
        private static void starteUserDialog(List <Dienstleistung> dListe, List <Computerteil> ctListe, Paket paket, Einkaufswagen einkaufswagen)
        {
            // in 33% der Fälle wählt der User einfach ein Paket aus, weil der Rabatt ihn überzeugt hat
            int auswahlPaket = generateRandomNumber(0, 3);

            if (auswahlPaket != 1)
            {
                // Wie lange soll der Dialog laufen? Hier: 12x
                for (int i = 0; i < 12; i++)
                {
                    // Simulation: Wahl Computerteil oder Service per Zufall
                    int randomProduktID = generateRandomNumber(1, dListe.Count + ctListe.Count);
                    // Produkt Computerteil?
                    if (randomProduktID <= ctListe.Count)
                    {
                        Computerteil computerteil = ctListe.Find(i => i.produktID == randomProduktID);
                        // Anzahl pro Computerteil pro Bestellung? hier: max 3x
                        int anzahl             = generateRandomNumber(1, 4);
                        EinkaufswagenItem item = new EinkaufswagenItem(computerteil.produktID, computerteil.name, computerteil.preis, anzahl, computerteil.rabatt, computerteil.typ);
                        einkaufswagen.updateEinkaufswagen(item);
                    }
                    // Ansonsten ist es ein Service
                    else
                    {
                        // Jeder Service kann pro Bestellung nur 1x bestellt werden
                        int               anzahl         = 1;
                        Dienstleistung    dienstleistung = dListe.Find(i => i.produktID == randomProduktID);
                        EinkaufswagenItem item           = new EinkaufswagenItem(dienstleistung.produktID, dienstleistung.name, dienstleistung.preis, anzahl, dienstleistung.rabatt, dienstleistung.typ);
                        einkaufswagen.updateEinkaufswagen(item);
                    }
                }
            }
            // User hat Paket ausgewählt, update Einkaufswagen und beende Dialog
            else
            {
                int anzahl             = 1;
                EinkaufswagenItem item = new EinkaufswagenItem(paket.produktID, paket.name, paket.preis, anzahl, paket.rabatt);
                einkaufswagen.updateEinkaufswagen(item);
            }
            // print Warenkorb
            Console.WriteLine();
            einkaufswagen.checkOut();
            Console.WriteLine();
        }
Пример #2
0
        public void updateEinkaufswagen(EinkaufswagenItem einkaufswagenItem)
        {
            // Produkt bereits im Einkaufswagen?
            if (!einkaufsListe.Any(i => i.produktID == einkaufswagenItem.produktID))
            {
                // All in One Service bestellt? --> Lösche alle anderen Services, da in dem Service bereits inkludiert
                if (einkaufswagenItem.produktID == 11)
                {
                    einkaufsListe.RemoveAll(j => j.produktID != 11 && j.typ == "Dienstleistung");
                    Console.ForegroundColor = ConsoleColor.DarkGreen;
                    Console.WriteLine("Der All in One Service wurde ausgewählt. Die restlichen Dienstleistungen wurden wieder aus dem Einkaufswagen entfernt!");
                    Console.ResetColor();
                }

                // Prüfe vorm Hinzufügen eines Services, ob All in One Service bereits im Einkaufswagen
                if (!einkaufsListe.Any(i => i.produktID == 11))
                {
                    einkaufsListe.Add(einkaufswagenItem);
                    Console.ForegroundColor = ConsoleColor.DarkGreen;
                    Console.WriteLine(einkaufswagenItem.anzahl + "x" + einkaufswagenItem.name + " zum Einkaufswagen hinzugefügt!");
                    Console.ResetColor();
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Sie können keine weiteren Dienstleistungen in den Warenkorb aufnehmen!");
                    Console.ResetColor();
                }
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(einkaufswagenItem.name + " bereits im Einkaufswagen vorhanden!");
                Console.ResetColor();
            }
        }