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 void ShowStatistics(FOI foi) { Output output = Output.GetInstance(); foreach (var place in foi.Places) { output.WriteLine(place.ToString()); output.WriteLine("\r\n>>>>>>>>>>>>>>> > UREĐAJI < <<<<<<<<<<<<<<<<<\r\n"); foreach (var device in place.Devices) { output.WriteLine(device.ToString()); } } }
private void InitializeSystem(FOI foi) { foreach (var place in foi.Places) { IEnumerable <Device> devicesOfPlace = place.Devices; foreach (var device in devicesOfPlace) { if (device.Initialize() == 0) { device.IsBeingUsed = false; } } } }
private void CheckDevices(Configuration configuration, FOI foi) { AlgorithmFactory algorithmFactory = AlgorithmFactory.GetFactory(configuration.Algorithm); Algorithm algorithm = algorithmFactory.CreateAlgorithm(foi); new Thread(() => { Thread.CurrentThread.IsBackground = false; for (int i = 0; i < configuration.NumberOfThreadCycles; i++) { algorithm.Run(configuration.ThreadCycleDuration ?? 1); } ShowStatistics(foi); Console.WriteLine("Program je završio. Pritisnite tipku za izlaz."); Console.ReadKey(); }).Start(); }
public abstract Algorithm CreateAlgorithm(FOI foi);
public RandomAlgorithm(FOI foi) : base(foi) { }
public AlphabeticAlgorithm(FOI foi) : base(foi) { }
public override Algorithm CreateAlgorithm(FOI foi) { return(new NumericAlgorithm(foi)); }
public override Algorithm CreateAlgorithm(FOI foi) { return(new RandomAlgorithm(foi)); }
protected Algorithm(FOI foi) { Foi = foi; }
public NumericAlgorithm(FOI foi) : base(foi) { }
public override Algorithm CreateAlgorithm(FOI foi) { return(new AlphabeticAlgorithm(foi)); }