private static void IspisiStatistiku(List <string> listaVrsta, List <int> listaKolicina)
        {
            int ukEmisija = 0;

            foreach (var broj in listaKolicina)
            {
                ukEmisija += broj;
            }
            Console.WriteLine("\nOvaj dan sadrži ukupno " + ukEmisija + " emisija.\n");
            IspisHelper.PrikaziZagavljeTablicaStatVrsta();
            foreach (string naziv in listaVrsta)
            {
                IspisHelper.Brojac = 0;
                IRedakTablice redakTablice =
                    new KratkiTekstDecorator(
                        new CjelobrojniDecorator(
                            new TekstualniDecorator(
                                new ConcreteRedak())));
                string format = redakTablice.NapraviRedak();
                string ispis  = String.Format(format,
                                              DobijPostotak(listaKolicina[listaVrsta.IndexOf(naziv)], ukEmisija) + "%",
                                              listaKolicina[listaVrsta.IndexOf(naziv)], naziv);
                Console.WriteLine(ispis);
                Console.WriteLine(new String('.', ispis.Length));
            }
        }
        private static void IspisiStatistiku(int ukEmisija, int profitEmisija)
        {
            Console.WriteLine("\nOvaj dan sadrži ukupno " + ukEmisija + " emisija.\n");
            IspisHelper.PrikaziZagavljeTablicaStatVrsta();

            IspisHelper.Brojac = 0;
            IRedakTablice redakTablice =
                new KratkiTekstDecorator(
                    new CjelobrojniDecorator(
                        new TekstualniDecorator(
                            new ConcreteRedak())));
            string format = redakTablice.NapraviRedak();

            string ispis = String.Format(format,
                                         DobijPostotak(profitEmisija, ukEmisija) + "%", profitEmisija, "PROFITABILNE");

            Console.WriteLine(ispis);
            Console.WriteLine(new String('.', ispis.Length));

            string ispis2 = String.Format(format,
                                          DobijPostotak((ukEmisija - profitEmisija), ukEmisija) + "%",
                                          (ukEmisija - profitEmisija), "NEPROFITABILNE");

            Console.WriteLine(ispis2);
            Console.WriteLine(new String('.', ispis.Length));
        }
        public override void Calculate(IComponentRaspored component)
        {
            List <string> listaNazivaVrsta         = new List <string>();
            List <int>    pratecaListaCounterVrsta = new List <int>();

            foreach (var emisija in component.GetChildList())
            {
                Emisija em    = emisija as Emisija;
                string  vrsta = IspisHelper.DohvatiNazivVrsteEmisije(em.GetVrsta());
                if (vrsta == "Nepoznata vrsta")
                {
                    //onda nista, ovo je za emisije koje predstavljaju TV signal
                }
                else if (!listaNazivaVrsta.Contains(vrsta))
                {
                    listaNazivaVrsta.Add(vrsta);
                    pratecaListaCounterVrsta.Add(1);
                }
                else
                {
                    pratecaListaCounterVrsta[listaNazivaVrsta.IndexOf(vrsta)] += 1;
                }
            }
            IspisiStatistiku(listaNazivaVrsta, pratecaListaCounterVrsta);
        }
        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);
        }