示例#1
0
        static void Main(string[] args)
        {
            Part p1 = new Part()
            {
                Name = "HDD", Price = 30.0
            };
            Part p2 = new Part()
            {
                Name = "HDD SSD", Price = 120.0
            };
            Part p3 = new Part()
            {
                Name = "HDD Data Cable", Price = 15.25
            };
            Part p4 = new Part()
            {
                Name = "HDD Power cable", Price = 5.25
            };
            Part p5 = new Part()
            {
                Name = "HDD External Box", Price = 9.0
            };
            Part p6 = new Part()
            {
                Name = "HDD Usb cable", Price = 3.25
            };
            Part p7 = new Part()
            {
                Name = "HDD Connector", Price = 2.25
            };
            Part p8 = new Part()
            {
                Name = "Camera external", Price = 15.0
            };
            Part p9 = new Part()
            {
                Name = "HDMI cable", Price = 20.5
            };
            Part p10 = new Part()
            {
                Name = "VGA cable", Price = 4.25
            };
            Part p11 = new Part()
            {
                Name = "USB cable", Price = 3.25
            };
            Part p12 = new Part()
            {
                Name = "Wifi Mouse", Price = 5.25
            };
            Part p13 = new Part()
            {
                Name = "Wifi Keyboard", Price = 5.25
            };
            Part p14 = new Part()
            {
                Name = "Desk mont part", Price = 15.25
            };
            Part p15 = new Part()
            {
                Name = "Monitor", Price = 115.25
            };
            Part p16 = new Part()
            {
                Name = "Cooler", Price = 7.25
            };
            Part p17 = new Part()
            {
                Name = "RAM", Price = 45.25
            };
            Part p18 = new Part()
            {
                Name = "Graphic card", Price = 86.25
            };
            Part p19 = new Part()
            {
                Name = "CPU", Price = 95.25
            };
            Part p20 = new Part()
            {
                Name = "Motherboard", Price = 85.0
            };
            Part p21 = new Part()
            {
                Name = "PC box", Price = 35.0
            };
            Part p22 = new Part()
            {
                Name = "Wifi sound", Price = 19.0
            };

            #region HDD module

            Module m1 = new Module("hdd module");
            m1.AddPartToModule(p1, 1); //hdd
            m1.AddPartToModule(p2, 1); //hdd ssd
            m1.AddPartToModule(p3, 2); //two data cables
            m1.AddPartToModule(p4, 1); //hdd power cable
            m1.AddPartToModule(p6, 1); //hdd usb cable
            m1.AddPartToModule(p7, 1); //hdd connector

            m1.SetDiscount(10);        // 10%
            Console.WriteLine("module 1: {0}", m1.Name);
            Console.WriteLine(m1.GetPrice());
            Console.WriteLine(m1.GetPrice().PriceWithCurrency("eur"));
            Console.WriteLine("discount price: {0}", m1.GetPriceWithDiscount().PriceWithCurrency("eur"));
            Console.WriteLine("--------------------");


            #endregion

            #region Peripherals module

            Module m2 = new Module("Perhipherals");
            Console.WriteLine("Module 2: {0}", m2.Name);
            m2.AddPartToModule(p12, 1); //wifi mouse
            m2.AddPartToModule(p13, 1); //wifi Keyboard
            m2.AddPartToModule(p16, 1); //cooler
            m2.AddPartToModule(p22, 1); //wifi sound
            m2.AddPartToModule(p9, 1);  //HDMI cable for the second monitor of the configuration
            m2.SetDiscount(5);          // 5%
            Console.WriteLine(m2.GetPrice());
            Console.WriteLine(m2.GetPrice().PriceWithCurrency("EUR"));
            Console.WriteLine("Discount price: {0}", m2.GetPriceWithDiscount().PriceWithCurrency("EUR"));
            Console.WriteLine("--------------------");

            #endregion

            #region Configuration 1

            Configuration pc1 = new Configuration(Colors.Black); //pc configuration
            pc1.Name = "Configuration 1";
            //  add modules to configuration
            pc1.AddModuleToProduct(m1, 1);
            pc1.AddModuleToProduct(m2, 1);

            //  add parts to configuration
            pc1.AddPartToProduct(p15, 2); //Monitors x2
            pc1.AddPartToProduct(p17, 1); //RAM
            pc1.AddPartToProduct(p18, 1); //Graphic card
            pc1.AddPartToProduct(p20, 1); //Motherboard
            pc1.AddPartToProduct(p19, 1); //CPU
            pc1.AddPartToProduct(p21, 1); //PC box

            Console.WriteLine(pc1.Name);
            Console.WriteLine("Box color: {0}", pc1.BoxColor);
            Console.WriteLine(pc1.GetPrice());
            pc1.SetDiscount(5); // 5%
            Console.WriteLine(pc1.GetPrice().PriceWithCurrency("EUR"));
            Console.WriteLine("Discount price: {0}", pc1.GetPriceWithDiscount().PriceWithCurrency("EUR"));
            Console.WriteLine("--------------------");

            Console.ReadKey();
            #endregion
        }
示例#2
0
        static void Main(string[] args)
        {
            Part p1  = new HDD("HDD Toshiba", 30, 16);
            Part p2  = new HDD("HDD Hitachi", 35, 16);
            Part p3  = new HDD("HDD Samsung", 37, 16);
            Part p4  = new HDD("HDD SSD Toshiba", 40, 32);
            Part p5  = new HDD("HDD SSD Hitachi", 43, 32);
            Part p6  = new HDD("HDD SSD Samsung", 50, 32);
            Part p7  = new Cables("Power Cable", 10, 50);
            Part p8  = new Cables("USB cable", 5, 30);
            Part p9  = new Cables("HDMI", 20, 120);
            Part p10 = new Cables("Ethernet", 50, 100);
            Part p11 = new Cables("VGA", 7, 70);
            Part p12 = new Cables("DVD", 10, 100);
            Part p13 = new Motherboard("ASrock", 100, true, false);
            Part p14 = new Motherboard("Asus", 120.5, true, true);
            Part p15 = new Motherboard("ASrock", 90, false, false);
            Part p16 = new Motherboard("Asus", 100, false, true);
            Part p17 = new Motherboard("Asus", 90, false, false);
            Part p18 = new Motherboard("BioStar", 50, false, false);
            Part p19 = new Motherboard("BioStar", 70, true, false);
            Part p20 = new Motherboard("BioStar", 90, true, true);
            Part p21 = new CPU("Intel Pentium 7", 100, 8, 8);
            Part p22 = new CPU("Inter Pentium 8", 150, 16, 32);
            Part p23 = new CPU("AMD Generation 5", 80, 8, 16);
            Part p24 = new CPU("AMD Generation 6", 120, 16, 32);
            Part p25 = new CPU("AMD Generation 7", 150, 16, 512);
            Part p26 = new CPU("Inter Pentium 9", 200, 32, 1024);
            Part p27 = new GraphicCard("GEFORCE GTX1080", 120, 11, 11);
            Part p29 = new GraphicCard("GEFORCE GTX1070", 100, 8, 8);
            Part p30 = new GraphicCard("GEFORCE GTX1050", 80, 8, 6);
            Part p31 = new GraphicCard("GEFORCE GTX1050", 50, 7, 4);
            Part p32 = new Ram("G-Skill", 200, 8, 5.25);
            Part p33 = new Ram("OCZ", 220, 16, 5.25);
            Part p34 = new Ram("Kingston", 270, 16, 5.25);
            Part p35 = new Ram("SK-HYIX", 270, 32, 5.25);
            Part p36 = new Monitor("Acer", 100, "1024x768", 32);
            Part p37 = new Monitor("Asus", 120, "1024x768", 32);
            Part p38 = new Monitor("Dell", 140, "1024x768", 32);
            Part p39 = new Monitor("Apple", 200, "1024x768", 32);
            Part p40 = new Part()
            {
                Name = "Computer box", Price = 120
            };
            List <Part> store = new List <Part> {
                p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40
            };



            #region HDD module

            Module m1 = new Module("HDD module");
            m1.AddPartToModule(p1, 1);  //HDD
            m1.AddPartToModule(p7, 1);  //Power cable
            m1.AddPartToModule(p4, 1);  //SSD Hard Disk
            m1.AddPartToModule(p10, 1); //Enthernet cable

            m1.SetDiscount(10);         // 10%
            Console.WriteLine("Module 1: {0}", m1.Name);

            Console.WriteLine(m1.GetPrice().PriceWithCurrency("EUR"));
            Console.WriteLine("Discount price: {0}", m1.GetPriceWithDiscount().PriceWithCurrency("EUR"));
            Console.WriteLine("--------------------");
            #endregion

            #region Motherboard module

            Module m2 = new Module("Motherboard module");
            Console.WriteLine("Module 2: {0}", m2.Name);
            m2.AddPartToModule(p15, 1); //Motherboard
            m2.AddPartToModule(p22, 1); //CPU
            m2.AddPartToModule(p29, 1); //Graphic Card
            m2.AddPartToModule(p34, 1); //RAM
            m2.SetDiscount(7);          // 7%
            Console.WriteLine(m2.GetPrice().PriceWithCurrency("EUR"));
            Console.WriteLine("Discount price: {0}", m2.GetPriceWithDiscount().PriceWithCurrency("EUR"));
            Console.WriteLine("--------------------");

            #endregion

            #region Configuration 1

            Configuration pc1 = new Configuration(Colors.Black); //pc configuration
            pc1.Name = "Configuration 1";
            //add modules to configuration
            pc1.AddModuleToProduct(m1, 1);
            pc1.AddModuleToProduct(m2, 1);

            //add parts to configuration
            pc1.AddPartToProduct(p37, 1); //Monitors x2
            pc1.AddPartToProduct(p40, 1); //PC box

            Console.WriteLine(pc1.Name);
            Console.WriteLine("Box color: {0}", pc1.BoxColor);
            pc1.SetDiscount(5); // 5%
            Console.WriteLine(pc1.GetPrice().PriceWithCurrency("EUR"));
            Console.WriteLine("Discount price: {0}", pc1.GetPriceWithDiscount().PriceWithCurrency("EUR"));
            Console.WriteLine("--------------------");

            Configuration pc2 = new Configuration(Colors.Gray); //pc configuration
            pc2.Name = "Configuration 2";
            //add modules to configuration
            pc2.AddModuleToProduct(m1, 1);
            pc2.AddModuleToProduct(m2, 1);

            //add parts to configuration
            pc2.AddPartToProduct(p39, 1); //Monitor
            pc2.AddPartToProduct(p40, 1); //PC box

            Console.WriteLine(pc2.Name);
            Console.WriteLine("Box color: {0}", pc2.BoxColor);
            pc2.SetDiscount(3); // 3%
            Console.WriteLine(pc2.GetPrice().PriceWithCurrency("EUR"));
            Console.WriteLine("Discount price: {0}", pc2.GetPriceWithDiscount().PriceWithCurrency("EUR"));
            Console.WriteLine("--------------------");


            Configuration pc3 = new Configuration(Colors.Silver); //pc configuration
            pc3.Name = "Configuration 3";
            //add modules to configuration
            pc3.AddModuleToProduct(m2, 1);

            //add parts to configuration

            pc3.AddPartToProduct(p38, 2); //Monitors x2
            pc3.AddPartToProduct(p40, 1); //PC box
            pc3.AddPartToProduct(p4, 1);
            pc3.AddPartToProduct(p7, 1);
            pc3.AddPartToProduct(p10, 1);
            pc3.AddPartToProduct(p11, 1);

            Console.WriteLine(pc2.Name);
            Console.WriteLine("Box color: {0}", pc3.BoxColor);
            pc3.SetDiscount(7); // 7%
            Console.WriteLine(pc3.GetPrice().PriceWithCurrency("EUR"));
            Console.WriteLine("Discount price: {0}", pc3.GetPriceWithDiscount().PriceWithCurrency("EUR"));
            Console.WriteLine("--------------------");

            Configuration pc4 = new Configuration(Colors.Silver); //pc configuration
            pc4.Name = "Configuration 4";
            //add modules to configuration
            pc4.AddModuleToProduct(m1, 1);

            //add parts to configuration

            pc4.AddPartToProduct(p38, 2); //Monitors x2
            pc4.AddPartToProduct(p23, 1);
            pc4.AddPartToProduct(p27, 1);
            pc4.AddPartToProduct(p33, 1);

            Console.WriteLine(pc4.Name);
            Console.WriteLine("Box color: {0}", pc4.BoxColor);
            pc4.SetDiscount(5); // 5%
            Console.WriteLine(pc3.GetPrice().PriceWithCurrency("EUR"));
            Console.WriteLine("Discount price: {0}", pc4.GetPriceWithDiscount().PriceWithCurrency("EUR"));
            Console.WriteLine("--------------------");

            #endregion

            Category.CPU          = store.Where(x => x.PartRole == PartRole.CPU).ToList();
            Category.HDD          = store.Where(x => x.PartRole == PartRole.HDD).ToList();
            Category.Cables       = store.Where(x => x.PartRole == PartRole.Cables).ToList();
            Category.Rams         = store.Where(x => x.PartRole == PartRole.Ram).ToList();
            Category.MotherBoards = store.Where(x => x.PartRole == PartRole.Motherboard).ToList();
            Category.Monitors     = store.Where(x => x.PartRole == PartRole.Monitor).ToList();
            Category.GraphicCards = store.Where(x => x.PartRole == PartRole.Graphic_Card).ToList();


            Console.WriteLine($"The minimum price of our cheapest configuration is {MinimumConfiguration.GetPrice()} Euros!");
            Console.WriteLine($"The most expensive configuration that we offer is {MostExpensive.GetPrice() + p40.Price}");

            List <Configuration> availableConfigurations = new List <Configuration> {
                pc1, pc2, pc3, pc4
            };

            ChooseConfig(availableConfigurations);

            RoomEquip sedcRoom = new RoomEquip();
            sedcRoom.AddConfigurationsToRoom(pc1, 5);
            sedcRoom.AddConfigurationsToRoom(pc2, 5);
            sedcRoom.Name = "Sedc Classroom";
            sedcRoom.SetDiscount(20);
            Console.WriteLine(sedcRoom.Name);
            Console.WriteLine(sedcRoom.GetPrice().PriceWithCurrency("EUR"));
            Console.WriteLine("Discount price: {0}", sedcRoom.GetPriceWithDiscount().PriceWithCurrency("EUR"));
            Console.WriteLine("--------------------");

            Console.Read();
        }