static void Main(string[] args)
        {
            var builder = new ContainerBuilder();

            builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()).AsSelf().AsImplementedInterfaces();
            var container = builder.Build();

            try
            {
                using var scope = container.BeginLifetimeScope();
                var s1 = scope.Resolve <IBatterySensor>();
                var s2 = scope.Resolve <IBatterySensor>();
                var s3 = scope.Resolve <ICableSensor>();

                SafetyControlUnit <IBatterySensor> SafetyControlUnit = new SafetyControlUnit <IBatterySensor>(new List <IBatterySensor> {
                    s1, s2
                });
                SecurityControlUnit <ICableSensor> SecurityControlUnit = new SecurityControlUnit <ICableSensor>(new List <ICableSensor> {
                    s3
                });



                string input = "exit";


                while (input.Equals("exit"))
                {
                    Console.WriteLine("Type \"poll\" to poll all sensors once or \"exit\" to exit");
                    input = Console.ReadLine();
                    if (input.Equals("poll"))
                    {
                        Console.WriteLine(SafetyControlUnit.PollSensors());
                        Console.WriteLine(SafetyControlUnit.GetBatteryPercentage());
                        Console.WriteLine(SecurityControlUnit.PollSensors());
                    }
                }
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine("Error during configuration demonstration: {0}", ex);
            }
        }
Exemple #2
0
        static void Main(string[] args)
        {
            var sensors = new List <ISensor>();

            sensors.Add(SensorFactory.NewFireSensor("Lobby"));
            sensors.Add(SensorFactory.NewSmokeSensor("Bedroom"));
            sensors.Add(SensorFactory.NewMotionSensor("Bathroom"));

            var hazsensors = new List <ISensor>();
            var secsensors = new List <ISensor>();

            foreach (ISensor sensor in sensors)
            {
                if (sensor is IHazardSensor)
                {
                    hazsensors.Add(sensor);
                }
                else
                {
                    secsensors.Add(sensor);
                }
            }

            IControlUnit controlUnit  = new ControlUnit(hazsensors);
            IControlUnit securityUnit = new SecurityControlUnit(secsensors);


            string input = string.Empty;

            while (!input.Equals("exit"))
            {
                Console.WriteLine("Type \"poll\" to poll all sensors once or \"exit\" to exit");
                input = Console.ReadLine();
                if (input.Equals("poll"))
                {
                    controlUnit.PollSensors();
                    securityUnit.PollSensors();
                }
            }
        }
Exemple #3
0
        public static void Main(string[] args)
        {
            List <ISensor> sensors = new List <ISensor>();

            sensors.Add(new FireSensor("Room 1"));
            sensors.Add(new SmokeSensor("Room 2"));

            ControlUnit controlUnit = new ControlUnit(sensors);

            string input = string.Empty;

            while (!input.Equals("exit"))
            {
                Console.WriteLine("Type \"poll\" to poll all hazard sensors once or \"exit\" to exit");
                input = Console.ReadLine();
                if (input.Equals("poll"))
                {
                    controlUnit.PollSensors();
                }
            }

            List <ISensor> securitySensors = new List <ISensor>();

            securitySensors.Add(new MotionSensor("Room 3"));
            securitySensors.Add(new HeatSensor("Room 4"));

            var securityControlUnit = new SecurityControlUnit(securitySensors);

            string inputTwo = string.Empty;

            while (!inputTwo.Equals("exit"))
            {
                Console.WriteLine("Type \"poll\" to poll all security sensors once or \"exit\" to exit");
                inputTwo = Console.ReadLine();
                if (inputTwo.Equals("poll"))
                {
                    securityControlUnit.PollSensors();
                }
            }
        }