private static bool DodajPreostale(TvProgram tvProgram, Emisija emisija, DnevniRaspored raspored) { var krajPrograma = tvProgram.KrajPrograma - emisija.TrajanjeEmisije + new TimeSpan(24, 0, 0); for (var j = tvProgram.PocetakPrograma; j <= krajPrograma; j += new TimeSpan(0, 1, 0)) { if (emisija.PocetakEmitiranjaEmisije + emisija.TrajanjeEmisije > tvProgram.KrajPrograma) { continue; } if (!ProvjeriPreklapanja(j, emisija.TrajanjeEmisije, raspored.DohvatiDjecu().Select(c => (EmisijaRasporeda)c).ToList())) { continue; } var trazenaEmisija = new EmisijaRasporeda { IdEmisije = emisija.Id, PocetakEmisije = j, KrajEmisije = j + emisija.TrajanjeEmisije, NazivEmisije = emisija.NazivEmisije, VrstaEmisije = emisija.VrstaEmisije, UnikatniID = UcitaniPodaci.EmisijaUnikatniID, OsobeUloge = DohvatiSveOsobeUloge(emisija) }; raspored.Dodaj(trazenaEmisija); DohvatiSveOsobeUloge(emisija); UcitaniPodaci.EmisijaUnikatniID++; return(true); } return(false); }
private static bool DodajPrioritetne(TvProgram tvProgram, Emisija emisija, DnevniRaspored raspored, out bool dodajEmisijuDnevnomRasporedu) { if (emisija.PocetakEmitiranjaEmisije != null) { //ako emisija traje duže od samog programa if (emisija.PocetakEmitiranjaEmisije + emisija.TrajanjeEmisije > tvProgram.KrajPrograma) { dodajEmisijuDnevnomRasporedu = false; return(true); } if (!ProvjeriPreklapanja(emisija.PocetakEmitiranjaEmisije.Value, emisija.TrajanjeEmisije, raspored.DohvatiDjecu().Select(c => (EmisijaRasporeda)c).ToList())) { dodajEmisijuDnevnomRasporedu = false; return(true); } var trazenaEmisija = new EmisijaRasporeda { IdEmisije = emisija.Id, PocetakEmisije = emisija.PocetakEmitiranjaEmisije.Value, KrajEmisije = emisija.PocetakEmitiranjaEmisije.Value + emisija.TrajanjeEmisije, NazivEmisije = emisija.NazivEmisije, VrstaEmisije = emisija.VrstaEmisije, UnikatniID = UcitaniPodaci.EmisijaUnikatniID, OsobeUloge = DohvatiSveOsobeUloge(emisija) }; DohvatiSveOsobeUloge(emisija); raspored.Dodaj(trazenaEmisija); UcitaniPodaci.EmisijaUnikatniID++; { dodajEmisijuDnevnomRasporedu = true; return(true); } } dodajEmisijuDnevnomRasporedu = false; return(false); }