Пример #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);
        }
Пример #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);
        }
Пример #3
0
        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());
                }
            }
        }
Пример #4
0
        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;
                    }
                }
            }
        }
Пример #5
0
        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();
        }
Пример #6
0
 public abstract Algorithm CreateAlgorithm(FOI foi);
Пример #7
0
 public RandomAlgorithm(FOI foi) : base(foi)
 {
 }
Пример #8
0
 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));
 }
Пример #11
0
 protected Algorithm(FOI foi)
 {
     Foi = foi;
 }
 public NumericAlgorithm(FOI foi) : base(foi)
 {
 }
 public override Algorithm CreateAlgorithm(FOI foi)
 {
     return(new AlphabeticAlgorithm(foi));
 }