/// <summary>
        /// A feladat ugyanaz, mint eddig, csak most esemenyekkel
        ///
        /// Az allapot valtozasat a megfigyelt kozolheti DTO-n keresztul,
        /// de a teljes megfigyelt peldanyt elkuldjuk a parameterlistaban, igy
        /// a megfigyelt mindenhez hozzafer
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            var f = new FelhasznaloiFelulet();

            var n = new NaplozoModul();

            var b = new BetoltoProgram();

            //Feliratkozasok
            //a)
            //b.AllapotValtozasTortent += B_AllapotValtozasTortent;

            //b) Anonymus delegate-tel
            //Ha ezzel a lambdas megoldassal iratkozok fel fuggvenyeket, akkor olyan fgv szignaturat is megadhatunk, ami elter a listaetol.
            //b.AllapotValtozasTortent += (object o, AllapotUzenet e) => { f.Uzenet(o); }; // Csak egy parameter van.
            //b.AllapotValtozasTortent += (object o, AllapotUzenet e) => { n.Uzenet(o, e.Allapot); }; //Nem az egesz osztaly, hanem csak az Allapot property-t adom at

            b.AllapotValtozasTortent += f.Uzenet;
            b.AllapotValtozasTortent += n.Uzenet;

            b.Start();

            b.AllapotValtozasTortent -= f.Uzenet;
            b.AllapotValtozasTortent -= n.Uzenet;
        }
        /// <summary>
        /// A feladat ugyanaz, mint eddig
        /// csak most megnézzük eseményekkel
        ///
        /// Az állapot változását a megfigyelt közölheti DTOn keresztül,
        /// de a teljes megfigyelt példány utazik a paraméterlistán, így
        /// a megfigyelő mindenhez hozzá is fér.
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            var b = new BetoltoProgram();

            var f = new FelhasznaloiFelulet();
            var n = new NaplozoModul();

            //feliratkozások
            //Átlagos eseményvezérlő: nekünk most nem ez kell.
            //b.AllapotValtozasTortent += B_AllapotValtozasTortent;

            //anonymous delegat-tel
            //Így is lehetne, akkor nálam van a lehetőség, hogy össze nem
            //kapcsolható függvényekkel is tudok játszani
            //b.AllapotValtozasTortent += (object o, AllapotUzenet e) => { f.Uzenet(e); };
            //b.AllapotValtozasTortent += (object o, AllapotUzenet e) => { n.Uzenet(e.Allapot); };

            //vagy csak simán megismétlem a hívást
            //b.AllapotValtozasTortent += (object o, AllapotUzenet e) => { f.Uzenet(o, e); };
            //b.AllapotValtozasTortent += (object o, AllapotUzenet e) => { n.Uzenet(o, e); };

            b.AllapotValtozasTortent += f.Uzenet;
            b.AllapotValtozasTortent += n.Uzenet;

            b.Start();

            b.AllapotValtozasTortent -= f.Uzenet;
            b.AllapotValtozasTortent -= n.Uzenet;
        }