Example #1
0
        private FOI LoadPlaces(Configuration configuration, ThingsOfFoi thingsOfFoi)
        {
            FOI foi = new FOI();
            List <Dictionary <string, string> > placeList = CSV.Parse(configuration.PlaceFilePath);

            IPlaceBuilder      placeBuilder       = new PlaceBuilderImpl();
            PlaceBuildDirector placeBuildDirector = new PlaceBuildDirector(placeBuilder);

            Output output = Output.GetInstance();

            foreach (var placeParams in placeList)
            {
                Place newPlace = placeBuildDirector.Construct(placeParams, thingsOfFoi);
                if (newPlace == null)
                {
                    output.WriteLine("Mjesto '" + placeParams["naziv"] + "' već postoji. Preskačem ...");
                }
                else
                {
                    if (newPlace.IsPlaceValid())
                    {
                        foi.Places.Add(newPlace);
                    }
                    else
                    {
                        output.WriteLine("Unos za mjesto: '" + newPlace.Name + "' nije dobar. Preskačem!");
                    }
                }
            }

            return(foi);
        }
Example #2
0
        static void Main(string[] args)
        {
            if (args.Length != 8)
            {
                Console.WriteLine("Nedovoljan  broj argumenata!");
                return;
            }

            Program program = new Program();

            Configuration configuration = program.LoadConfiguration(args);

            if (!configuration.IsConfigurationValid())
            {
                Console.WriteLine("Pogrešni argumenti!");
                return;
            }

            Output output = program.GetOutput(configuration);

            ThingsOfFoi thingsOfFoi = program.LoadDevices(configuration);
            FOI         foi         = program.LoadPlaces(configuration, thingsOfFoi);

            program.InitializeSystem(foi);
            program.CheckDevices(configuration, foi);
        }
        private Foi LoadPlaces(Configuration configuration, ThingsOfFoi thingsOfFoi)
        {
            Foi foi = Foi.GetInstance();
            List <Dictionary <string, string> > placeList = Csv.Parse(configuration.PlaceFilePath);

            IPlaceBuilder      placeBuilder       = new PlaceBuilderImpl();
            PlaceBuildDirector placeBuildDirector = new PlaceBuildDirector(placeBuilder);

            foreach (var row in placeList)
            {
                Place newPlace = placeBuildDirector.Construct(row, thingsOfFoi);

                if (newPlace != null)
                {
                    if (newPlace.IsPlaceValid())
                    {
                        foi.AddPlace(newPlace);
                    }
                    else
                    {
                        Data.Add("Unos za mjesto: '" + newPlace.Name + "' nije dobar. Preskacem!");
                    }
                }
            }

            if (placeList.Count == 0 || foi.Places.Count == 0)
            {
                Data.Add("Nije ucitano nijedno mjesto. Program ne moze nastaviti!");
                return(null);
            }

            return(foi);
        }
Example #4
0
        public Place Construct(Dictionary <string, string> placeParams, ThingsOfFoi thingsOfFoi, Foi foi)
        {
            RandomGeneratorFacade randomGeneratorFacade = new RandomGeneratorFacade();

            if (DoesPlaceNameExists(placeParams["naziv"], foi))
            {
                return(null);
            }

            int placeUniqueIdentifier = randomGeneratorFacade.GiveRandomNumber(1, 1000);

            while (DoesIdentifierExists(placeUniqueIdentifier, foi))
            {
                placeUniqueIdentifier = randomGeneratorFacade.GiveRandomNumber(1, 1000);
            }

            List <Device> devices = new List <Device>();

            devices.AddRange(GetRandomDevices(Converter.StringToInt(placeParams["broj senzora"]), thingsOfFoi.Sensors.FindAll(sen => sen.Type == Converter.StringToInt(placeParams["tip"]) || sen.Type == 2)));
            devices.AddRange(GetRandomDevices(Converter.StringToInt(placeParams["broj aktuatora"]), thingsOfFoi.Actuators.FindAll(act => act.Type == Converter.StringToInt(placeParams["tip"]) || act.Type == 2)));

            return(_builder
                   .SetUniqueIdentifier(placeUniqueIdentifier)
                   .SetName(placeParams["naziv"])
                   .SetType(Converter.StringToInt(placeParams["tip"]))
                   .SetNumberOfSensors(Converter.StringToInt(placeParams["broj senzora"]))
                   .SetNumberOfActuators(Converter.StringToInt(placeParams["broj aktuatora"]))
                   .SetDevices(devices)
                   .Build());
        }
        public void LoadEntities(Configuration configuration)
        {
            _configuration = configuration;

            new RandomGeneratorFacade(configuration.GeneratorSeed ?? 0);

            _thingsOfFoi = LoadDevices(configuration);

            if (_thingsOfFoi == null)
            {
                return;
            }

            _foi = LoadPlaces(configuration, _thingsOfFoi);

            if (_foi == null)
            {
                return;
            }

            _schedules = LoadSchedules(_configuration);

            Initialize();

            Notify();
        }
        private ThingsOfFoi LoadDevices(Configuration configuration)
        {
            ThingsOfFoi thingsOfFoi = new ThingsOfFoi();
            Output      output      = Output.GetInstance();

            List <Dictionary <string, string> > sensorsList   = Csv.Parse(configuration.SensorsFilePath);
            List <Dictionary <string, string> > actuatorsList = Csv.Parse(configuration.ActuatorsFilePath);

            DeviceCreator deviceCreator = new DeviceCreator();

            foreach (var sensor in sensorsList)
            {
                Device device = deviceCreator.CreateDevice(sensor, DeviceType.Sensor, thingsOfFoi);
                if (device.IsDeviceValid())
                {
                    thingsOfFoi.AddSensor(device);
                }
                else
                {
                    output.WriteLine("Unos za uređaj: '" + device.Name + "' nije dobar. Preskačem!");
                }
            }

            if (sensorsList.Count == 0 || thingsOfFoi.Sensors.Count == 0)
            {
                output.WriteLine("Nije učitan nijedan senzor. Program ne može nastaviti!");
                return(null);
            }

            foreach (var actuator in actuatorsList)
            {
                Device device = deviceCreator.CreateDevice(actuator, DeviceType.Actuator, thingsOfFoi);
                if (device.IsDeviceValid())
                {
                    thingsOfFoi.AddActuator(device);
                }
                else
                {
                    output.WriteLine("Unos za uređaj: '" + device.Name + "' nije dobar. Preskačem!");
                }
            }

            if (actuatorsList.Count == 0 || thingsOfFoi.Actuators.Count == 0)
            {
                output.WriteLine("Nije učitan nijedan aktuator. Program ne može nastaviti!");
                return(null);
            }

            return(thingsOfFoi);
        }
Example #7
0
        public Place Construct(Dictionary <string, string> placeParams, ThingsOfFoi thingsOfFoi)
        {
            if (_builtPlacesList.Contains(placeParams["naziv"]))
            {
                return(null);
            }

            _builtPlacesList.Add(placeParams["naziv"]);

            return(_builder
                   .SetName(placeParams["naziv"])
                   .SetType(Converter.StringToInt(placeParams["tip"]))
                   .SetNumberOfSensors(Converter.StringToInt(placeParams["broj senzora"]))
                   .SetNumberOfActuators(Converter.StringToInt(placeParams["broj aktuatora"]))
                   .SetSensors(GetRandomSensors(Converter.StringToInt(placeParams["broj senzora"]), thingsOfFoi.Sensors.FindAll(sen => sen.Type == Converter.StringToInt(placeParams["tip"]) || sen.Type == 2)))
                   .SetActuators(GetRandomActuators(Converter.StringToInt(placeParams["broj aktuatora"]), thingsOfFoi.Actuators.FindAll(act => act.Type == Converter.StringToInt(placeParams["tip"]) || act.Type == 2)))
                   .Build());
        }
Example #8
0
        public Place Construct(Dictionary <string, string> placeParams, ThingsOfFoi thingsOfFoi)
        {
            Foi foi = Foi.GetInstance();

            RandomGeneratorFacade randomGeneratorFacade = new RandomGeneratorFacade();

            if (DoesPlaceExists(Converter.StringToInt(placeParams["id"]), foi))
            {
                Console.WriteLine("Mjesto sa identifikatorom: " + placeParams["id"] + "(" + placeParams["naziv"] + ") vec postoji, preskacem!");
                return(null);
            }

            return(_builder
                   .SetUniqueIdentifier(Converter.StringToInt(placeParams["id"]))
                   .SetName(placeParams["naziv"])
                   .SetType(Converter.StringToInt(placeParams["tip"]))
                   .SetNumberOfSensors(Converter.StringToInt(placeParams["broj senzora"]))
                   .SetNumberOfActuators(Converter.StringToInt(placeParams["broj aktuatora"]))
                   .Build());
        }
        private Foi LoadPlaces(Configuration configuration, ThingsOfFoi thingsOfFoi)
        {
            Output output = Output.GetInstance();
            Foi    foi    = new Foi();
            List <Dictionary <string, string> > placeList = Csv.Parse(configuration.PlaceFilePath);

            IPlaceBuilder      placeBuilder       = new PlaceBuilderImpl();
            PlaceBuildDirector placeBuildDirector = new PlaceBuildDirector(placeBuilder);

            foreach (var placeParams in placeList)
            {
                Place newPlace = placeBuildDirector.Construct(placeParams, thingsOfFoi, foi);

                if (newPlace == null)
                {
                    output.WriteLine("Mjesto '" + placeParams["naziv"] + "' već postoji. Preskačem ...");
                }
                else
                {
                    if (newPlace.IsPlaceValid())
                    {
                        foi.Places[foi.Places.Count] = newPlace;
                    }
                    else
                    {
                        output.WriteLine("Unos za mjesto: '" + newPlace.Name + "' nije dobar. Preskačem!");
                    }
                }
            }

            if (placeList.Count == 0 || foi.Places.Count == 0)
            {
                output.WriteLine("Nije učitano nijedno mjesto. Program ne može nastaviti!");
                return(null);
            }

            return(foi);
        }
Example #10
0
        private ThingsOfFoi LoadDevices(Configuration configuration)
        {
            ThingsOfFoi thingsOfFoi = new ThingsOfFoi();

            List <Dictionary <string, string> > sensorsList   = CSV.Parse(configuration.SensorsFilePath);
            List <Dictionary <string, string> > actuatorsList = CSV.Parse(configuration.ActuatorsFilePath);
            DeviceCreator deviceCreator = new DeviceCreator();
            Output        output        = GetOutput(configuration);

            foreach (var sensor in sensorsList)
            {
                Device device = deviceCreator.CreateDevice(sensor, DeviceCreator.DeviceType.Sensor);
                if (device.IsDeviceValid())
                {
                    thingsOfFoi.AddSensor(device);
                }
                else
                {
                    output.WriteLine("Unos za uređaj: '" + device.Name + "' nije dobar. Preskačem!");
                }
            }

            foreach (var actuator in actuatorsList)
            {
                Device device = deviceCreator.CreateDevice(actuator, DeviceCreator.DeviceType.Actuator);
                if (device.IsDeviceValid())
                {
                    thingsOfFoi.AddActuator(device);
                }
                else
                {
                    output.WriteLine("Unos za uređaj: '" + device.Name + "' nije dobar. Preskačem!");
                }
            }

            return(thingsOfFoi);
        }
        private ThingsOfFoi LoadDevices(Configuration configuration)
        {
            ThingsOfFoi thingsOfFoi = new ThingsOfFoi();

            List <Dictionary <string, string> > sensorsList   = Csv.Parse(configuration.SensorsFilePath);
            List <Dictionary <string, string> > actuatorsList = Csv.Parse(configuration.ActuatorsFilePath);

            DeviceCreator deviceCreator = new DeviceCreator();

            foreach (var row in sensorsList)
            {
                Sensor sensor = (Sensor)deviceCreator.CreateDevice(row, DeviceType.Sensor, thingsOfFoi);
                if (sensor.IsDeviceValid())
                {
                    if (!thingsOfFoi.Sensors.Exists(s => s.ModelIdentifier == sensor.ModelIdentifier))
                    {
                        thingsOfFoi.AddSensor(sensor);
                    }
                    else
                    {
                        Data.Add("Model senzora sa ID-jem: '" + sensor.UniqueIdentifier + " (" + sensor.Name + ") " + "' vec postoji. Preskacem!");
                    }
                }
                else
                {
                    Data.Add("Unos za uredaj: '" + sensor.Name + "' nije dobar. Preskacem!");
                }
            }

            if (sensorsList.Count == 0 || thingsOfFoi.Sensors.Count == 0)
            {
                Data.Add("Nije ucitan nijedan senzor. Program ne moze nastaviti!");
                return(null);
            }

            foreach (var row in actuatorsList)
            {
                Actuator actuator = (Actuator)deviceCreator.CreateDevice(row, DeviceType.Actuator, thingsOfFoi);
                if (actuator.IsDeviceValid())
                {
                    if (!thingsOfFoi.Actuators.Exists(a => a.ModelIdentifier == actuator.ModelIdentifier))
                    {
                        thingsOfFoi.AddActuator(actuator);
                    }
                    else
                    {
                        Data.Add("Aktuator sa ID-jem: " + actuator.UniqueIdentifier + " (" + actuator.Name + ") " + " vec postoji. Preskacem!");
                    }
                }
                else
                {
                    Data.Add("Unos za uredaj: '" + actuator.Name + "' nije dobar. Preskacem!");
                }
            }

            if (actuatorsList.Count == 0 || thingsOfFoi.Actuators.Count == 0)
            {
                Data.Add("Nije ucitan nijedan aktuator. Program ne moze nastaviti!");
                return(null);
            }

            return(thingsOfFoi);
        }
Example #12
0
        static void Main(string[] args)
        {
            Output output = Output.GetInstance();

            output.WelcomeUser();

            if (args.Length > 18 || (args.Length < 4 && args.Length != 1))
            {
                output.WriteLine("Nedovoljan broj argumenata!", true);
                output.NotifyEnd();
                return;
            }
            else
            {
                if (args.Length == 1 && args[0] == "--help")
                {
                    output.HelpUser();
                    output.NotifyEnd();
                    return;
                }
                else
                {
                    if (args.Length % 2 != 0)
                    {
                        output.WriteLine("Broja argumenata mora biti paran!", true);
                        output.NotifyEnd();
                        return;
                    }
                }
            }

            Program program = new Program();

            Configuration configuration = program.LoadConfiguration(args);

            if (!configuration.IsConfigurationValid())
            {
                output.WriteLine("Argumenti nisu valjani! Provjerite argumente!", true);
                output.NotifyEnd();
                return;
            }

            program.SetUpOutput(configuration);
            program.InitializeRandomGenerator(configuration);

            ThingsOfFoi thingsOfFoi = program.LoadDevices(configuration);

            if (thingsOfFoi == null)
            {
                output.NotifyEnd();
                return;
            }

            Foi foi = program.LoadPlaces(configuration, thingsOfFoi);

            if (foi == null)
            {
                output.NotifyEnd();
                return;
            }

            program.InitializeSystem(foi);
            program.EquipPlaces(foi);
            program.CheckDevices(configuration, foi);
        }