public static void IzbrisiEmisiju(int redniBroj) { TvKucaSingleton tvKuca = TvKucaSingleton.GetTvKucaInstance(); int indeksPrograma = 0; int indeksDana = 0; foreach (var program in tvKuca.GetCompositeRaspored().GetChildList()) { foreach (var dan in program.GetChildList()) { foreach (var emisija in dan.GetChildList()) { Emisija em = emisija as Emisija; if (em.GetRedniBroj() == redniBroj) { ZabiljeziStanje(em, indeksPrograma, indeksDana); dan.GetChildList().Remove(emisija); Console.WriteLine("Emisija uspješno izbrisana iz Composite-a!"); break; } } indeksDana++; } indeksPrograma++; } }
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); }
public void SetPocetniCvor(CompositeRaspored dolazniCvor) { PocetniCvor = new CompositeRaspored(); int indeksPrograma = 0; foreach (var program in dolazniCvor.GetChildList()) { CompositeRaspored noviProgram = new CompositeRaspored(); noviProgram.SetMojNaziv(program.GetMojNaziv()); PocetniCvor.AddChild(noviProgram); int indeksDana = 0; foreach (var dan in program.GetChildList()) { CompositeRaspored noviDan = new CompositeRaspored(); PocetniCvor.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()); PocetniCvor.GetChildList()[indeksPrograma] .GetChildList()[indeksDana].AddChild(nova); } indeksDana++; } indeksPrograma++; } }
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); }
public static List <Emisija> DohvatiListuSvihEmisijaUCompositeu() { List <Emisija> lista = new List <Emisija>(); TvKucaSingleton tvKuca = TvKucaSingleton.GetTvKucaInstance(); foreach (var program in tvKuca.GetCompositeRaspored().GetChildList()) { foreach (var dan in program.GetChildList()) { foreach (var emisija in dan.GetChildList()) { Emisija em = emisija as Emisija; if (em.GetRedniBroj() != -1) { // -1 je fiksno signal TV kuce lista.Add(em); } } } } return(lista.OrderBy(x => x.GetRedniBroj()).ToList()); }