public void AKovetkezoASorban(SzabadsagEngedelyezes kovetkezo)
 {
     if (kovetkezo == null)
     {
         throw new ArgumentNullException("kovetkezo");
     }
     this.kovetkezo = kovetkezo;
 }
        public bool SzabadsagEngedelyezese(int engedelyezendoNap)
        {
            //var engedelyezok = new List<Munkatars>(new Munkatars[]
            //{
            //    new Munkatars("Gipsz Jakab", 1),
            //    new Munkatars("Nagy Zoltán", 2),
            //    new Munkatars("Kis Sándor", 4),
            //    new Munkatars("Tóth Ferenc", 6),
            //    new Munkatars("Sándor Péter",10)
            //});

            //foreach (var munkatars in engedelyezok)
            //{
            //    var eredmeny = munkatars.SzabadsagEngedelyezese(engedelyezendoNap);
            //    if (eredmeny
            //        != Munkatars.EngedelyezesEredmenye.NincsRaFelhatalmazas)
            //    {
            //        //Itt eredmény született, ezt kiírjuk
            //        Console.WriteLine("{0} napot {1}: {2}", engedelyezendoNap, eredmeny, munkatars.Nev);
            //        return true;
            //    }
            //}
            //Console.WriteLine("Nincs aki ezt engedélyezni tudja");
            //return false;

            //létrehozunk egy új hierarchiát, ami leírja a döntéshozatal módját.
            var jakab  = new SzabadsagEngedelyezes(new Munkatars("Gipsz Jakab", 1));
            var zoltan = new SzabadsagEngedelyezes(new Munkatars("Nagy Zoltán", 2));
            var sandor = new SzabadsagEngedelyezes(new Munkatars("Kis Sándor", 4));
            var ferenc = new SzabadsagEngedelyezes(new Munkatars("Tóth Ferenc", 6));
            var peter  = new SzabadsagEngedelyezes(new Munkatars("Sándor Péter", 10));

            jakab.AKovetkezoASorban(zoltan);
            zoltan.AKovetkezoASorban(sandor);
            sandor.AKovetkezoASorban(ferenc);
            ferenc.AKovetkezoASorban(peter);

            //nem vizsgáljuk, hogy a korábbi elem szerepel-e a láncban (ez körhöz vezetne, ami végtelen ciklust okozna)
            //nem vizsgáljuk, hogy valakit saját magához szeretnénk adni (szintén)

            //vizsgáljuk, hogy ne lehessen nullal hívni

            EngedelyezesEredmenye eredmeny = jakab.SzabadsagEngedelyezese(engedelyezendoNap);

            return(eredmeny != EngedelyezesEredmenye.NincsRaFelhatalmazas);
        }
 public void AKovetkezoASorban(SzabadsagEngedelyezes kovetkezo)
 {
     throw new NotImplementedException();
 }