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); }
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); }
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); }
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()); }
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); }
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); }
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); }