private static void DodajEmisijuNaPocetakPrograma(TvProgram program, Emisija orig,
                                                          VremenskiPlan plan, int brojDana)
        {
            Emisija emisijaZaDodat = VratiNoviKopiraniObjekt(orig);

            DodajNoveOsobeUlogeEmisije(emisijaZaDodat, plan);
            emisijaZaDodat.SetVrijemePrikazivanja(program.GetPocetakPrikazivanja());
            DodjeliRedniBroj(emisijaZaDodat);
            program.GetTjedan()[(brojDana - 1)].AddChild(emisijaZaDodat);

            SubjectOsobaUlogaSingleton subject = SubjectOsobaUlogaSingleton.GetInstance();

            subject.AddObserver(emisijaZaDodat);
        }
        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);
        }
示例#3
0
        private static void OdabirNoveUlogeZaOsobuURasporedu(int osobaId, int ulogaId)
        {
            List <int> listaIdSvihUloga = DohvatiSveIdUlogaIzTvKuce();

            listaIdSvihUloga.Remove(ulogaId); //Micem staru
            Console.WriteLine("\nOdabrana osoba: " + DohvatiImeOsobePoId(osobaId));
            Console.WriteLine("Odabrana uloga za zamjenu: " + DohvatiNazivUlogePoId(ulogaId));
            Console.WriteLine("Odaberite neku postojeću ulogu koju želite postaviti: \n");
            for (int i = 0; i < listaIdSvihUloga.Count; i++)
            {
                Console.WriteLine("(" + (i + 1) + ") " +
                                  DohvatiNazivUlogePoId(listaIdSvihUloga[i]));
            }
            Console.Write("Moj odabir: ");
            string korisnickiUnos = Console.ReadLine();

            if (int.TryParse(korisnickiUnos, out int odabir))
            {
                if (odabir > listaIdSvihUloga.Count || odabir <= 0)
                {
                    Console.WriteLine("Ta uloga ne postoji !");
                }
                else
                {
                    SubjectOsobaUlogaSingleton subject = SubjectOsobaUlogaSingleton.GetInstance();
                    subject.SetOsobaUlogaStaro(new KeyValuePair <int, int>(osobaId, ulogaId));
                    subject.SetOsobaUlogaNovo(new
                                              KeyValuePair <int, int>(osobaId, listaIdSvihUloga[odabir - 1]));
                    Console.WriteLine("\nUspjesno zamjenjena uloga '"
                                      + DohvatiNazivUlogePoId(ulogaId)
                                      + "' sa ulogom '" + DohvatiNazivUlogePoId(listaIdSvihUloga[odabir - 1])
                                      + "' kod osobe - " + DohvatiImeOsobePoId(osobaId));
                }
            }
            else
            {
                Console.WriteLine("Ne ispravan unos!");
            }
        }
        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.");
                    }
                }
            }
        }