Beispiel #1
0
        static void Main(string[] args)
        {
            var monitors = new List <ComputerMonitor>()

            {
                new ComputerMonitor {
                    Name = "Samsung S345", ScreenType = ScreenType.CurvedScreen, DisplayType = DisplayType.OLED
                },
                new ComputerMonitor {
                    Name = "Philips P532", ScreenType = ScreenType.WideScreen, DisplayType = DisplayType.LCD
                },
                new ComputerMonitor {
                    Name = "LG L888", ScreenType = ScreenType.WideScreen, DisplayType = DisplayType.LED
                },
                new ComputerMonitor {
                    Name = "Samsung S999", ScreenType = ScreenType.WideScreen, DisplayType = DisplayType.OLED
                },
                new ComputerMonitor {
                    Name = "Dell D2J47", ScreenType = ScreenType.CurvedScreen, DisplayType = DisplayType.LCD
                }
            };

            var filter      = new MonitorFilter();
            var lcdMonitors = filter.Filter(monitors, new DisplayTypeSpecification(DisplayType.LCD));

            Console.WriteLine("All LCD monitors");
            foreach (var monitor in lcdMonitors)
            {
                Console.WriteLine($"Name: {monitor.Name}, Type: {monitor.DisplayType}, Screen: {monitor.ScreenType}");
            }

            Console.ReadKey();
        }
Beispiel #2
0
        //static void FilterByType()
        //{
        //    var monitors = new List<ComputerMonitor>
        //    {
        //        new ComputerMonitor { Name = "Samsung S345", Screen = Screen.CurvedScreen, Type = MonitorType.OLED },
        //        new ComputerMonitor { Name = "Philips P532", Screen = Screen.WideScreen, Type = MonitorType.LCD },
        //        new ComputerMonitor { Name = "LG L888", Screen = Screen.WideScreen, Type = MonitorType.LED },
        //        new ComputerMonitor { Name = "Samsung S999", Screen = Screen.WideScreen, Type = MonitorType.OLED },
        //        new ComputerMonitor { Name = "Dell D2J47", Screen = Screen.CurvedScreen, Type = MonitorType.LCD }
        //    };

        //    var filter = new MonitorFilter();

        //    //var filteredMonitors = filter.FilterByType(monitors, MonitorType.LCD);
        //    //Console.WriteLine("All LCD monitors");
        //    var filteredMonitors = filter.FilterByScreen(monitors, Screen.CurvedScreen);
        //    Console.WriteLine("All Curved monitors");
        //    foreach (var monitor in filteredMonitors)
        //    {
        //        string string1 = string.Format("Name: {0}, Type: {1}, Screen: {2}", monitor.Name, monitor.Type, monitor.Screen);
        //        Console.WriteLine(string1);
        //    }
        //}

        static void FilterByType_OCP()
        {
            var monitors = new List <ComputerMonitor>
            {
                new ComputerMonitor {
                    Name = "Samsung S345", Screen = Screen.CurvedScreen, Type = MonitorType.OLED
                },
                new ComputerMonitor {
                    Name = "Philips P532", Screen = Screen.WideScreen, Type = MonitorType.LCD
                },
                new ComputerMonitor {
                    Name = "LG L888", Screen = Screen.WideScreen, Type = MonitorType.LED
                },
                new ComputerMonitor {
                    Name = "Samsung S999", Screen = Screen.WideScreen, Type = MonitorType.OLED
                },
                new ComputerMonitor {
                    Name = "Dell D2J47", Screen = Screen.CurvedScreen, Type = MonitorType.LCD
                }
            };

            var                    filter = new MonitorFilter();
            ISpecification         iSpec;
            List <ComputerMonitor> filteredMonitors;

            iSpec = new MonitorTypeSpecification(MonitorType.LCD);
            Console.WriteLine("All LCD monitors");

            filteredMonitors = filter.Filter(monitors, iSpec);
            foreach (var monitor in filteredMonitors)
            {
                string string1 = string.Format("Name: {0}, Type: {1}, Screen: {2}", monitor.Name, monitor.Type, monitor.Screen);
                Console.WriteLine(string1);
            }

            iSpec = new ScreenSpecification(Screen.CurvedScreen);
            Console.WriteLine("All Curved Screen monitors");

            filteredMonitors = filter.Filter(monitors, iSpec);
            foreach (var monitor in filteredMonitors)
            {
                string string1 = string.Format("Name: {0}, Type: {1}, Screen: {2}", monitor.Name, monitor.Type, monitor.Screen);
                Console.WriteLine(string1);
            }
        }