コード例 #1
0
ファイル: Program.cs プロジェクト: iEpic/Computerladen
        private static void initApp()
        {
            // hardcoded customer
            Kunde k1 = new Kunde(1, "Max", "Mustermann", "*****@*****.**", "m", "Frankfurt", "65929", "Leibnizstraße", "21", "+4915784137979", Convert.ToDecimal(590.85), new DateTime().Date);

            // generiere Listen
            List <Dienstleistung> dListe  = new DienstleistungListe().generate();
            List <Computerteil>   ctListe = new ComputerTeileListe().generate();

            // generiere ein All-In-One-Paket: funktionierender PC + All-In-One Service (ID: 11)
            Paket paket = new Paket("All-In-One Special");

            ctListe.ForEach(i => paket.add(i.preis, i.zeitaufwand));
            Dienstleistung superService = dListe.Find(j => j.produktID == 11);

            paket.add(superService.preis, superService.zeitaufwand);

            // generiere shopping chart
            Einkaufswagen einkaufswagen = new Einkaufswagen();

            // print welcome msg
            Console.WriteLine("************************************************************************************************************************");
            Console.WriteLine("Hallo " + k1.fullName + " und willkommen im Computerladen von RGN!");
            Console.WriteLine();
            Console.WriteLine("In unserem Shop findest du eine Vielzahl von Computerteilen und Dienstleistungen zu Spottpreisen!");
            Console.WriteLine("Sichere dir Rabatte von 10% beim Kauf einer unserer heissbegehrten Pakete.");
            Console.WriteLine("************************************************************************************************************************");
            Console.WriteLine();

            // print computer parts
            Console.WriteLine("******************************************************Computerteile*****************************************************");
            Console.WriteLine();
            Console.WriteLine(String.Format("|{0,5}|{1,63}|{2,15}|{3,10}|{4,10}|", "ID", "Produktbezeichnung", "Preis", "Aufwand", "Verfügbar"));
            ctListe.ForEach(i => Console.WriteLine(
                                String.Format("|{0,5}|{1,63}|{2,10} Euro|{3,8} h|{4,10}|", i.produktID, i.name, i.preis, i.zeitaufwand, i.verfügbarkeit == true ? "ja" : "nein")));

            // print services
            Console.WriteLine("******************************************************Dienstleistungen**************************************************");
            Console.WriteLine();
            Console.WriteLine(String.Format("|{0,5}|{1,63}|{2,15}|{3,10}|", "ID", "Produktbezeichnung", "Preis", "Aufwand"));
            dListe.ForEach(i => Console.WriteLine(
                               String.Format("|{0,5}|{1,63}|{2,10} Euro|{3,8} h|", i.produktID, i.name, i.preis, i.zeitaufwand)));

            // print package(s)
            Console.WriteLine("***********************************************************Pakete*******************************************************");
            Console.WriteLine();
            Console.WriteLine(String.Format("|{0,5}|{1,63}|{2,15}|{3,10}|{4,10}|", "ID", "Produktbezeichnung", "Preis", "Aufwand", "Rabatt"));
            Console.WriteLine(String.Format("|{0,5}|{1,63}|{2,10} Euro|{3,8} h|{4,10:-0%}|", paket.produktID, paket.name, paket.preis, paket.zeitaufwand, paket.rabatt));

            // print and start Simulation
            Console.WriteLine("*******************************************************Kaufsimulation***************************************************");
            starteUserDialog(dListe, ctListe, paket, einkaufswagen);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: iEpic/Computerladen
        // 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();
        }