Esempio n. 1
0
        public static bool DodajEmisijuDnevnomRasporedu(TvProgram tvProgram, Emisija emisija, DnevniRaspored raspored,
                                                        Dan i)
        {
            if (ProvjeriPripadnostEmisijeProgramu(tvProgram, emisija) == false)
            {
                return(false);
            }
            var daniEmisije = emisija.Dani.Count > 0;

            //ako ima dane, a trenutni dan nije taj dan
            if (daniEmisije && !emisija.Dani.Contains(i))
            {
                Console.WriteLine("Emisija se ne izvodi u odabranom danu");
                return(false);
            }
            //prioritet emisije 1. ( emisija ima i dan i pocetak emitiranja
            if (DodajPrioritetne(tvProgram, emisija, raspored, out var dodajEmisijuDnevnomRasporedu))
            {
                return(dodajEmisijuDnevnomRasporedu);
            }
            //za sve ostale
            if (DodajPreostale(tvProgram, emisija, raspored))
            {
                return(true);
            }

            return(false);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 public static bool ProvjeriPripadnostEmisijeProgramu(TvProgram tvProgram, Emisija emisija)
 {
     if (tvProgram.Emisije.Count(e => e.Id == emisija.Id) < 1)
     {
         Console.WriteLine("Tražena emisija ne pripada odabranom programu");
         return(false);
     }
     else
     {
         return(true);
     }
 }
Esempio n. 4
0
        public static List <IObserver> DohvatiSveOsobeUloge(Emisija e)
        {
            List <IObserver> pomocnaLista = new List <IObserver>();

            foreach (var VARIABLE in e.UlogeOsoba)
            {
                try
                {
                    var osoba = UcitaniPodaci.UcitaneOsobe.First(o => o.Id == VARIABLE.OsobaId);
                    var uloga = UcitaniPodaci.UcitaneUloge.First(u => u.Id == VARIABLE.UlogaId);
                    pomocnaLista.Add(DodajOsobaUlogu(osoba, uloga));
                }
                catch (Exception exception)
                {
                    Console.WriteLine("Ne postoji takav par osoba i uloga");
                }
            }

            return(pomocnaLista);
        }
Esempio n. 5
0
        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);
        }