/// <summary>
        ///     U1 - Príchod zákazníka
        ///     Naplánujem:
        ///     -	Začiatok spracovania objednávky - naplánujem udalosť okamžite, ak je volny pracovnik.
        ///     -	Front čakajúcich zákazníkov - Vložím do frontu čakajúcich zákazníkov zákazníka s aktuálnym časom príchodu.
        ///     -	Príchod nového zákazníka s vygenerovaným časom z Generátora 1.
        ///     Štatistiky:
        ///     -	S1a - Začnem merať čas čakania zákazníka v rade čakajúcich zákazníkov na zadanie objednávky.
        ///     -	S2a  – Pripočítam jedného zákazníka v rade čakajúcich zákazníkov.
        ///     -	S3a - Začnem počítať čas strávený zákazníkov v servise.
        /// </summary>
        public override void Execute()
        {
            if (AktualnyZakaznik == null)
            {
                throw new Exception("NULL zakaznik. ");
            }

            AktualnyZakaznik.S1_ZacniCakanie_front_cakajucich_zakaznikov(EventTime);
            AktualnyZakaznik.S3_ZacniCakanie_bytia_v_servise(EventTime);
            ((AppCore)ReferenceSimCore).S2_AddValue();

            if (((AppCore)ReferenceSimCore).JeVolnyPracovnik1())
            {
                //obsad volneho pracovnik
                ((AppCore)ReferenceSimCore).ObsadPracovnikaSkupiny1();

                var zadanie = new ZaciatokSpracovaniaObjednavkyEvent(EventTime, ReferenceSimCore, AktualnyZakaznik);
                ReferenceSimCore.ScheduleEvent(zadanie);
            }
            else
            {
                ((AppCore)ReferenceSimCore).S2_AddValue();

                //inak vlozim zakaznika do frontu cakajucich zakaznikov
                ((AppCore)ReferenceSimCore).Front_CakajuciZakaznici_PridajZakaznika(AktualnyZakaznik);
            }

            //naplanujem novy prichod zákazníka
            var a       = ((AppCore)ReferenceSimCore).Gen.Generator1_ZakazniciPrichod();
            var time    = EventTime + a;
            var prichod = new PrichodZakaznikaEvent(time, ReferenceSimCore, new Zakaznik());

            ReferenceSimCore.ScheduleEvent(prichod);
        }
        /// <summary>
        /// Začiatok replikácie  </summary>
        ///  Vytvorím nového zákazníka.
        ///  Naplánujem:
        ///  -	Príchod zákazníka – s vygenerovaním časom z Generátora 1 – Zákazníci príchod.
        ///  -	Koniec dňa – s časom o osem hodín (28 800 sekúnd).

        public override void Execute()
        {
            //naplanujem prichod zakaznika
            var time    = ((AppCore)ReferenceSimCore).Gen.Generator1_ZakazniciPrichod();
            var prichod = new PrichodZakaznikaEvent(time, ReferenceSimCore, new Zakaznik());

            ((AppCore)ReferenceSimCore).ScheduleEvent(prichod);

            //naplanujem koniec kna
            var koniec = new KoniecDnaEvent(EventTime, ReferenceSimCore, null);

            ((AppCore)ReferenceSimCore).ScheduleEvent(koniec);
        }