private static bool PrelaziPonocaXkrajPrograma(Emisija emisija, TvProgram program) { DateTime datum; if (program.GetKrajPrikazivanja() == DateTime.MinValue) { datum = new DateTime( emisija.GetVrijemePrikazivanja().Year, emisija.GetVrijemePrikazivanja().Month, emisija.GetVrijemePrikazivanja().AddDays(1).Day, 0, 0, 0); } else { datum = new DateTime( emisija.GetVrijemePrikazivanja().Year, emisija.GetVrijemePrikazivanja().Month, emisija.GetVrijemePrikazivanja().AddDays(0).Day, program.GetKrajPrikazivanja().Hour, program.GetKrajPrikazivanja().Minute, 0); } TimeSpan timespan = datum - emisija.GetVrijemePrikazivanja() .AddMinutes(emisija.GetTrajanje()); if (timespan.TotalMinutes < 0) { return(true); } else { return(false); } }
private static bool ProvjeriMogucnostDodavanja( Emisija emisija, IComponentRaspored dan, TvProgram program) { bool moguceDodati = true; if (program.GetPocetakPrikazivanja().TimeOfDay > emisija.GetVrijemePrikazivanja().TimeOfDay) { moguceDodati = false; } if (PostojiEmisijaKojaPocinjeUNavedenoVrijeme(dan, emisija.GetVrijemePrikazivanja())) { moguceDodati = false; } if (PostojiEmisijaKojaSeEmitiraUNavedenoVrijeme( dan, emisija.GetVrijemePrikazivanja(), emisija.GetTrajanje())) { moguceDodati = false; } if (PrelaziPonocaXkrajPrograma(emisija, program)) { moguceDodati = false; } return(moguceDodati); }
/// <summary> /// Ovo je DEPRICATED od 30-11 /// Ovo mi ne pomaze, ovo ima referencu na listu OU prave /// </summary> /// <param name="prva"></param> /// <param name="druga"></param> private static void DodajAtributeDrugeEmisijePrvoj(Emisija prva, Emisija druga) { prva.SetId(druga.GetId()); prva.SetNaziv(druga.GetNaziv()); prva.SetVrsta(druga.GetVrsta()); prva.SetTrajanje(druga.GetTrajanje()); prva.SetListaOsobaUloga(druga.GetListaOsobaUloga()); }
private static bool UspioDodatiIzmeduDvije(TvProgram program, Emisija orig, VremenskiPlan plan, int brojDana) { Emisija emisijaZaDodat = VratiNoviKopiraniObjekt(orig); DodajNoveOsobeUlogeEmisije(emisijaZaDodat, plan); emisijaZaDodat.SetVrijemePrikazivanja( DohvatiVrijemeGdjeEmisijuMoguceUbacitiIzmeduDvijeEmisije( program.GetTjedan()[brojDana - 1], emisijaZaDodat.GetTrajanje())); if (emisijaZaDodat.GetVrijemePrikazivanja().TimeOfDay != DateTime.MinValue.TimeOfDay) { DodjeliRedniBroj(emisijaZaDodat); program.GetTjedan()[(brojDana - 1)].AddChild(emisijaZaDodat); SubjectOsobaUlogaSingleton subject = SubjectOsobaUlogaSingleton.GetInstance(); subject.AddObserver(emisijaZaDodat); return(true); } return(false); }
/// <summary> /// Ovo je nova, klonira ko bog /// </summary> /// <param name="origigi">Originalna emisija</param> public static Emisija VratiNoviKopiraniObjekt(Emisija origigi) { Emisija nova = new Emisija(); int id = origigi.GetId(); string naziv = origigi.GetNaziv(); int vrstaId = origigi.GetVrsta(); int trajanje = origigi.GetTrajanje(); List <KeyValuePair <int, int> > lista = new List <KeyValuePair <int, int> >(); foreach (var item in origigi.GetListaOsobaUloga()) { lista.Add(item); } nova.SetId(id); nova.SetNaziv(naziv); nova.SetVrsta(vrstaId); nova.SetTrajanje(trajanje); nova.SetListaOsobaUloga(lista); return(nova); }
private static void DodajEmisijeZadaniPocetak( TvProgram program, List <VremenskiPlan> listaZadaniPocetakDani) { TvKucaSingleton tvKuca = TvKucaSingleton.GetTvKucaInstance(); SubjectOsobaUlogaSingleton subject = SubjectOsobaUlogaSingleton.GetInstance(); foreach (VremenskiPlan plan in listaZadaniPocetakDani) { foreach (int brojDana in plan.GetListaDanaEmitiranja()) { Emisija trazena = tvKuca.ListaEmisija.Find (x => x.GetId() == plan.GetEmisijaId()); if (trazena == null) { Console.WriteLine(" - Emisija sa ID: " + plan.GetEmisijaId() + " ne postoji! -> PRESKAČEM"); break; } Emisija emisijaZaDodat = VratiNoviKopiraniObjekt(trazena); emisijaZaDodat.SetVrijemePrikazivanja(plan.GetPocetak()); DodajNoveOsobeUlogeEmisije(emisijaZaDodat, plan); if (ProvjeriMogucnostDodavanja (emisijaZaDodat, program.GetTjedan()[brojDana - 1], program)) { DodjeliRedniBroj(emisijaZaDodat); program.GetTjedan()[(brojDana - 1)].AddChild(emisijaZaDodat); subject.AddObserver(emisijaZaDodat); } else { Console.WriteLine(" - " + brojDana + ".dan - Emisiju: " + emisijaZaDodat.GetId() + " vrijeme pocetka: " + emisijaZaDodat.GetVrijemePrikazivanja().TimeOfDay + ", " + emisijaZaDodat.GetNaziv() + " - trajanje: " + emisijaZaDodat.GetTrajanje() + " nije bilo moguće dodati u raspored."); } } } }