Exemple #1
0
        private TimeSpan PronađiTermin(List <Raspored> rasporedi, Emisija emisija, Programi program)
        {
            TimeSpan pocetak  = TimeSpan.Parse("23:59");
            int      kontrola = 0;

            if (program.pocetak.Add(TimeSpan.FromMinutes(emisija.trajanje)) < rasporedi[0].pocetak)
            {
                pocetak  = program.pocetak;
                kontrola = 1;
            }
            if (kontrola == 0)
            {
                for (int j = 0; j < rasporedi.Count - 1; j++)
                {
                    TimeSpan kraj_prethodne   = rasporedi[j].pocetak.Add(TimeSpan.FromMinutes(((Emisija)rasporedi[j].emisija).trajanje));
                    TimeSpan pocetak_sljedece = rasporedi[j + 1].pocetak;
                    if (kraj_prethodne.Add(TimeSpan.FromMinutes(emisija.trajanje)) < pocetak_sljedece)
                    {
                        pocetak  = kraj_prethodne;
                        kontrola = 1;
                        break;
                    }
                }
            }
            if (kontrola == 0)
            {
                TimeSpan kraj_zadnje = rasporedi.Last().pocetak.Add(TimeSpan.FromMinutes(((Emisija)rasporedi.Last().emisija).trajanje));
                if (kraj_zadnje.Add(TimeSpan.FromMinutes(emisija.trajanje)) < program.kraj)
                {
                    pocetak  = kraj_zadnje;
                    kontrola = 1;
                }
            }
            return(pocetak);
        }
Exemple #2
0
        private void Gradi(List <string[]> lista_redaka, int dan_u_tjednu, Emisija emisija, Programi program, int i, TimeSpan pocetak)
        {
            Raspored raspored = new Raspored(rbr, emisija, dan_u_tjednu, pocetak);

            rbr++;
            int x = 1;

            if (lista_redaka[i].Length == 4)
            {
                x = 3;
            }
            if (lista_redaka[i].Length == 3)
            {
                x = 2;
            }
            if (lista_redaka[i][x] != "")
            {
                string[] split = lista_redaka[i][x].Split('-');
                Osoba    osoba = (Osoba)osobaCreator.VratiObjekt(int.Parse(split[0]));
                Uloga    uloga = (Uloga)ulogaCreator.VratiObjekt(int.Parse(split[1]));
                program.DodajOsobu(osoba, raspored, 2);
                foreach (var item in emisija.osobe)
                {
                    program.DodajOsobu(item, emisija, 1);
                }
                raspored.osoba.Add(osoba);
                raspored.uloga.Add(uloga);
            }
            lista_rasporeda.Add(raspored);
            lista_rasporeda = lista_rasporeda.OrderBy(a => a.pocetak).ToList();
        }
Exemple #3
0
        private void ProvjeriRasporediGradi(int dan, int i, Emisija emisija, Programi program, List <string[]> lista_redaka)
        {
            int             kontrola  = 0;
            TimeSpan        pocetak   = TimeSpan.Parse(lista_redaka[i][2]);
            TimeSpan        kraj      = pocetak.Add(TimeSpan.FromMinutes(emisija.trajanje));
            List <Raspored> rasporedi = lista_rasporeda.FindAll(a => dan == a.dan_u_tjednu);

            if (rasporedi.Count > 0)
            {
                if (rasporedi.Any(a => pocetak > a.pocetak && pocetak < a.pocetak.Add(TimeSpan.FromMinutes(emisija.trajanje))))
                {
                    kontrola = 1;
                }
                if (rasporedi.Any(a => kraj > a.pocetak && kraj < a.pocetak.Add(TimeSpan.FromMinutes(emisija.trajanje))))
                {
                    kontrola = 1;
                }
            }
            if (kontrola == 0)
            {
                Gradi(lista_redaka, dan, emisija, program, i, pocetak);
            }
            else
            {
                Console.WriteLine("Kolizija u terminima emisija: " + emisija.naziv_emisije + " s početkom u: " + pocetak + " trajanja: " + emisija.trajanje + " u danu: " + dan + " na programu: " + program.naziv_programa);
            }
        }
Exemple #4
0
        private void PronađiTerminiGradi(int i, Emisija emisija, Programi program, List <string[]> lista_redaka)
        {
            int x = 0;

            for (int j = 1; j <= 7; j++)
            {
                TimeSpan        pocetak;
                List <Raspored> rasporedi = lista_rasporeda.FindAll(a => j == a.dan_u_tjednu);
                if (rasporedi.Count == 0)
                {
                    pocetak = program.pocetak;
                    Gradi(lista_redaka, j, emisija, program, i, pocetak);
                    x = 1;
                    break;
                }
                else
                {
                    pocetak = PronađiTermin(rasporedi, emisija, program);

                    if (pocetak != TimeSpan.Parse("23:59"))
                    {
                        Gradi(lista_redaka, j, emisija, program, i, pocetak);
                        x = 1;
                        break;
                    }
                }
            }
            if (x == 0)
            {
                Console.WriteLine("Nije bilo mogućeg termina za emisiju");
            }
        }
Exemple #5
0
 private void DanBezVremena(List <string[]> lista_redaka, Programi program)
 {
     for (int i = 0; i < lista_redaka.Count; i++)
     {
         try
         {
             Emisija emisija = lista_emisija.Single(a => int.Parse(lista_redaka[i][0]) == a.id);
             if (lista_redaka[i].Length == 3)
             {
                 if (lista_redaka[i][1].Contains("-"))
                 {
                     DaniCrtica(lista_redaka, i, emisija, program, 2);
                 }
                 if (lista_redaka[i][1].Contains(","))
                 {
                     DaniZarez(lista_redaka, i, emisija, program, 2);
                 }
                 if (lista_redaka[i][1].Length <= 2)
                 {
                     KreirajRasporediGradi(int.Parse(lista_redaka[i][1]), i, emisija, program, lista_redaka);
                 }
             }
         }
         catch (Exception e)
         {
             Console.WriteLine("Greška prilikom kreiranja rasporeda, Program: " + program.naziv_programa + " Emisija: " + lista_redaka[i][0]);
         }
     }
 }
Exemple #6
0
        private void KreirajRasporediGradi(int dan, int i, Emisija emisija, Programi program, List <string[]> lista_redaka)
        {
            List <Raspored> rasporedi = lista_rasporeda.FindAll(a => dan == a.dan_u_tjednu);
            TimeSpan        pocetak   = PronađiTermin(rasporedi, emisija, program);

            if (pocetak != TimeSpan.Parse("23:59"))
            {
                Gradi(lista_redaka, dan, emisija, program, i, pocetak);
            }
            else
            {
                Console.WriteLine("Nema prigodnog termina za emisiju");
            }
        }
Exemple #7
0
 private void DaniZarez(List <string[]> lista_redaka, int i, Emisija emisija, Programi program, int kontrola)
 {
     string[] dan_u_tjednu2 = lista_redaka[i][1].Split(',');
     if (dan_u_tjednu2.Length > 1)
     {
         for (int j = 0; j < dan_u_tjednu2.Length; j++)
         {
             if (kontrola == 1)
             {
                 ProvjeriRasporediGradi(int.Parse(dan_u_tjednu2[j]), i, emisija, program, lista_redaka);
             }
             if (kontrola == 2)
             {
                 KreirajRasporediGradi(int.Parse(dan_u_tjednu2[j]), i, emisija, program, lista_redaka);
             }
         }
     }
 }
Exemple #8
0
 private void DaniCrtica(List <string[]> lista_redaka, int i, Emisija emisija, Programi program, int kontrola)
 {
     string[] dan_u_tjednu1 = lista_redaka[i][1].Split('-');
     if (dan_u_tjednu1.Length == 2)
     {
         for (int j = int.Parse(dan_u_tjednu1[0]); j <= int.Parse(dan_u_tjednu1[1]); j++)
         {
             if (kontrola == 1)
             {
                 ProvjeriRasporediGradi(j, i, emisija, program, lista_redaka);
             }
             if (kontrola == 2)
             {
                 KreirajRasporediGradi(j, i, emisija, program, lista_redaka);
             }
         }
     }
 }
Exemple #9
0
 private void BezDanaIVremena(List <string[]> lista_redaka, Programi program)
 {
     for (int i = 0; i < lista_redaka.Count; i++)
     {
         try
         {
             Emisija emisija = lista_emisija.Single(a => int.Parse(lista_redaka[i][0]) == a.id);
             if (lista_redaka[i].Length == 2)
             {
                 PronađiTerminiGradi(i, emisija, program, lista_redaka);
             }
         }
         catch (Exception e)
         {
             Console.WriteLine("Greška prilikom kreiranja rasporeda, Program: " + program.naziv_programa + " Emisija: " + lista_redaka[i][0]);
         }
     }
 }
Exemple #10
0
        public void BuildEmisije()
        {
            citac.CitajDatoteku(citac.emisije);
            List <string[]> lista_redaka = citac.DohvatiListuRedaka();

            for (int i = 0; i < lista_redaka.Count; i++)
            {
                if (lista_redaka[i].Length == 5)
                {
                    try
                    {
                        Vrsta    vrsta       = (Vrsta)vrstaCreator.VratiObjekt(int.Parse(lista_redaka[i][2]));
                        Emisija  emisija     = new Emisija(int.Parse(lista_redaka[i][0]), lista_redaka[i][1], int.Parse(lista_redaka[i][3]), vrsta);
                        string[] osoba_uloga = lista_redaka[i][4].Split(',');
                        if (osoba_uloga.Length > 0)
                        {
                            foreach (var item in osoba_uloga)
                            {
                                string[] split = item.Split('-');
                                if (split.Length == 2)
                                {
                                    Osoba o = (Osoba)osobaCreator.VratiObjekt(int.Parse(split[0]));
                                    Uloga u = (Uloga)ulogaCreator.VratiObjekt(int.Parse(split[1]));
                                    tvKuca.DodajOsobu(o, emisija, 1);
                                    emisija.osobe.Add(o);
                                    emisija.uloge.Add(u);
                                }
                            }
                        }
                        lista_emisija.Add(emisija);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Neispravni podaci u retku: " + (i + 1));
                    }
                }
                else
                {
                    Console.WriteLine("Neispravan redak: " + (i + 1) + " u datoteci: " + citac.emisije);
                }
            }
        }
        public void Handle(Component component, int i)
        {
            Emisija emisija = (Emisija)component;

            controller.Ispis("Emisija broja: " + i + " je: " + emisija.naziv_emisije);
        }
Exemple #12
0
 public void visit(Emisija emisija)
 {
     trajanje += emisija.vrsta.max_trajanje_reklama;
 }