Ejemplo n.º 1
0
        /** Začiatk platenia
         *        1. Vytvorím si inštanciu Exit.
         *        2. Nastavím si simulačný čas.
         *        3. Zavolám si generátor => Vygenerujem 5 minút.
         *        4. Nastavím simulačný čas na aktuálny čas.
         *        5. Naplánujem čas.
         *        6. Vložím do prioritného frontu.
         *        7. Vytvorím inštanciu Customer.
         *
         *      Instancia triedy Customers - musím nastaviť referenciu zákazníka na toho,
         *      ktorého plánujem odchod.
         *      Posúvam referenciu, aby zákazník skutočne odišiel.
         *      Pribudne atribúút IsAvailable...
         */
        public override void Execute()
        {
            //set is served to true
            ((SimCoreShop)(this.ReferenceSimCore)).IsServed = true;
            //1.
            //2.
            var waitingTime = CurrentCustomer.EndWaiting(EventTime);

            //for statistics
            ((SimCoreShop)(this.ReferenceSimCore)).AddStatisticsWaitingTimeStat(waitingTime);
            //3.
            //4.
            //set time of event -> genrate from random number
            var time = this.EventTime + ((SimCoreShop)(this.ReferenceSimCore)).Generators[0].GenerateDouble();
            //5.
            //6.
            //7.
            Exit ex = new Exit(time, ReferenceSimCore, CurrentCustomer);

            ReferenceSimCore.ScheduleEvent(ex, time);
        }