Exemple #1
0
        static void Main(string[] args)
        {


            Product test = new Product("Kaappi", "Huonekalu");
            Print testi = new Print("Pelit", "lehti", "Finnish game magazine", 120);
            Disk disk = new Disk("Ubuntu CD", "DVD", 2);
            Computer comp = new Computer("GTA 234", "Laptop", 500, "i5", "Lenovo");

            List<Product> bookcase = new List<Product>();
            bookcase.Add(test);
            bookcase.Add(testi);
            bookcase.Add(disk);
            bookcase.Add(comp);

            bool cont = true;

            do
            {
                Console.WriteLine("1. Print content of bookcase\n2. Add new item to bookcase\n3. End program");
                int read = int.Parse(Console.ReadLine());

                switch (read)
                {
                    case 1:

                        foreach (Product tuote in bookcase)
                        {
                            Console.WriteLine(tuote.ToString());
                        }

                        break;

                    case 2:

                        Console.WriteLine("Add new...\n1. Magazine or book\n2. Cd-, DVD- or blueray-disk\n3. Computer\n4. Cancel");
                        int read2 = int.Parse(Console.ReadLine());

                        switch (read2)
                        {
                            case 1:
                                Console.WriteLine("Name: ");
                                string name1 = Console.ReadLine();
                              
                                //making sure that there dosen't exist a object with that name
                                string trimmed = name1.Trim();
                                int index = bookcase.FindIndex(name => name.name == trimmed);


                                do
                                {
                                    if (index >= 0)
                                    {
                                        Console.WriteLine("There already exists a print with name: " + name1);
                                        Console.WriteLine("Try a new name: ");
                                        name1 = Console.ReadLine();
                                        index = bookcase.FindIndex(name => name.name == name1);

                                    }
                                } while (index >= 0);


                                Console.WriteLine("What type of print (example. book, magazine...): ");
                                string type1 = Console.ReadLine();

                                Console.WriteLine("Publisher of the print: ");
                                string publ1 = Console.ReadLine();

                                Console.WriteLine("Number of pages: ");
                                int page1 = int.Parse(Console.ReadLine());

                                Print Unew = new Print(name1, type1, publ1, page1);
                                Console.WriteLine("New " + type1 + " information: \n" + Unew.ToString());
                                bookcase.Add(Unew);
    
                                break;

                            case 2:
                                Console.WriteLine("Name: ");
                                string name2 = Console.ReadLine();

                                trimmed = name2.Trim();
                                index = bookcase.FindIndex(name => name.name == trimmed);


                                do
                                {
                                    if (index >= 0)
                                    {
                                        Console.WriteLine("There already exists a print with name: " + name2);
                                        Console.WriteLine("Try a new name: ");
                                        name1 = Console.ReadLine();
                                        index = bookcase.FindIndex(name => name.name == trimmed);

                                    }
                                } while (index >= 0);






                                Console.WriteLine("What type of disk? (CD, DVD, Blueray...): ");
                                string type2 = Console.ReadLine();

                                Console.WriteLine("Disk memory size (GB): ");
                                int mem = int.Parse(Console.ReadLine());
                                
                                Disk UnewDisk = new Disk(name2, type2, mem);
                                Console.WriteLine("New " + type2 + " information: \n" + UnewDisk.ToString());
                                bookcase.Add(UnewDisk);
                                break;

                            case 3:
                                Console.WriteLine("Name: ");
                                string name3 = Console.ReadLine();

                                trimmed = name3.Trim();
                                index = bookcase.FindIndex(name => name.name == trimmed);


                                do
                                {
                                    if (index >= 0)
                                    {
                                        Console.WriteLine("There already exists a print with name: " + name3);
                                        Console.WriteLine("Try a new name: ");
                                        name1 = Console.ReadLine();
                                        index = bookcase.FindIndex(name => name.name == trimmed);

                                    }
                                } while (index >= 0);

                                Console.WriteLine("What type of Computer? (Laptop, Desktop, Tablet...): ");
                                string type3 = Console.ReadLine();

                                Console.WriteLine("Computer harddrive memory size (GB): ");
                                int mem2 = int.Parse(Console.ReadLine());

                                Console.WriteLine("Computer's proceccor: ");
                                string proc = Console.ReadLine();

                                Console.WriteLine("Computer's producer: ");
                                string prod = Console.ReadLine();

                                Computer UnewComp = new Computer(name3, type3, mem2, proc, prod);
                                Console.WriteLine("New " + type3 + " information: \n" + UnewComp.ToString());
                                bookcase.Add(UnewComp);
                                break;

                            case 4:
                                Console.WriteLine("Canceling...");
                                break;
                        }

                        break;
                    case 3:
                        Console.WriteLine("Ending program...");
                        cont = false;
                        break;
                }

            } while (cont != false);


           
            Console.ReadLine();
        }