private static CompositeRaspored NapraviKopijuCvoraStanja(PohranjenoStanje stanje)
        {
            CompositeRaspored noviPocetniCvor = new CompositeRaspored();
            int indeksPrograma = 0;

            foreach (var program in stanje.GetPocetniCvor().GetChildList())
            {
                CompositeRaspored noviProgram = new CompositeRaspored();
                noviProgram.SetMojNaziv(program.GetMojNaziv());
                noviPocetniCvor.AddChild(noviProgram);
                int indeksDana = 0;
                foreach (var dan in program.GetChildList())
                {
                    CompositeRaspored noviDan = new CompositeRaspored();
                    noviPocetniCvor.GetChildList()[indeksPrograma].AddChild(noviDan);
                    foreach (var emisija in dan.GetChildList())
                    {
                        Emisija em   = emisija as Emisija;
                        Emisija nova = TjedniPlanHelper.VratiNoviKopiraniObjekt(em);
                        nova.SetRedniBroj(em.GetRedniBroj());
                        nova.SetVrijemePrikazivanja(em.GetVrijemePrikazivanja());
                        noviPocetniCvor.GetChildList()[indeksPrograma]
                        .GetChildList()[indeksDana].AddChild(nova);
                    }
                    indeksDana++;
                }
                indeksPrograma++;
            }
            return(noviPocetniCvor);
        }
        private static void ZabiljeziStanje(Emisija brisanaEm, int program, int dan)
        {
            PohranjenoStanje stanje = new PohranjenoStanje();

            stanje.SetRedniBroj(ListaPohranjenihStanja.Count + 1);
            stanje.SetVrijemePohrane(DateTime.Now);

            TvKucaSingleton tvKuca = TvKucaSingleton.GetTvKucaInstance();

            stanje.SetPocetniCvor(tvKuca.GetCompositeRaspored());

            stanje.SetOpis("Stanje prije brisanja emisije (Redni br: " + brisanaEm.GetRedniBroj()
                           + ") '" + brisanaEm.GetNaziv() + "' -> " +
                           tvKuca.GetCompositeRaspored().GetChildList()[program].GetMojNaziv() +
                           " - " + IspisHelper.UnesiBrojDobijDan(dan + 1));

            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.Write("Spremam novo stanje: ");
            Console.ForegroundColor = ConsoleColor.Gray;
            Console.WriteLine(stanje.GetOpis());
            ListaPohranjenihStanja.Add(stanje);
        }