private static CompositeRaspored NapraviKopijuCvoraStanja(PohranjenoStanje stanje) { CompositeRaspored noviPocetniCvor = new CompositeRaspored(); int indeksPrograma = 0; foreach (var program in stanje.GetPocetniCvor().GetChildList()) { CompositeRaspored noviProgram = new CompositeRaspored(); noviProgram.SetMojNaziv(program.GetMojNaziv()); noviPocetniCvor.AddChild(noviProgram); int indeksDana = 0; foreach (var dan in program.GetChildList()) { CompositeRaspored noviDan = new CompositeRaspored(); noviPocetniCvor.GetChildList()[indeksPrograma].AddChild(noviDan); foreach (var emisija in dan.GetChildList()) { Emisija em = emisija as Emisija; Emisija nova = TjedniPlanHelper.VratiNoviKopiraniObjekt(em); nova.SetRedniBroj(em.GetRedniBroj()); nova.SetVrijemePrikazivanja(em.GetVrijemePrikazivanja()); noviPocetniCvor.GetChildList()[indeksPrograma] .GetChildList()[indeksDana].AddChild(nova); } indeksDana++; } indeksPrograma++; } return(noviPocetniCvor); }
public static void IzbrisiEmisiju(int redniBroj) { TvKucaSingleton tvKuca = TvKucaSingleton.GetTvKucaInstance(); int indeksPrograma = 0; int indeksDana = 0; foreach (var program in tvKuca.GetCompositeRaspored().GetChildList()) { foreach (var dan in program.GetChildList()) { foreach (var emisija in dan.GetChildList()) { Emisija em = emisija as Emisija; if (em.GetRedniBroj() == redniBroj) { ZabiljeziStanje(em, indeksPrograma, indeksDana); dan.GetChildList().Remove(emisija); Console.WriteLine("Emisija uspješno izbrisana iz Composite-a!"); break; } } indeksDana++; } indeksPrograma++; } }
protected override void DodajPodatke() { if (File.Exists(putanja)) { string[] red = File.ReadAllLines(putanja).Skip(1).ToArray(); foreach (var r in red) { string[] parametri = r.Split(';'); if (parametri.Length > 6 || parametri.Length < 3) { Console.WriteLine("Neispravno definirani parametri - red: " + r); } else { if (provjeraPostojanjaTrajanja(parametri, r)) { return; } if (provjeraPostojanjaVrste(parametri, r)) { return; } Emisija e = new Emisija(); e.Id = int.Parse(parametri[0]); e.naziv = parametri[1]; e.VrstaEmisije = int.Parse(parametri[2]); e.trajanje = int.Parse(parametri[3]); e.OsobaUloga = definiranjeOsobaUloge(parametri, e); ListaEntiteta.Add(e); } } } }
protected override List <Entitet> PripremiPodatke(string[] redovi) { string[] polja; Emisija emisija; List <Entitet> listaPodataka = new List <Entitet>(); foreach (var red in redovi) { try { polja = Array.ConvertAll(red.Split(base._separator), p => p.Trim()); //polja[2] su minute var _vrijeme = TimeSpan.FromMinutes(double.Parse(polja[3])); VrstaEmisije vrstaEmisije = new VrstaEmisije(); vrstaEmisije.Id = int.Parse(polja[2]); emisija = new Emisija(int.Parse(polja[0]), polja[1], vrstaEmisije, Konverzija.PretvoriVrijemeUSekunde(_vrijeme.ToString()), vratiOsobaUloga(polja[4], ',')); listaPodataka.Add(emisija); } catch (Exception e) { Console.ForegroundColor = ConsoleColor.Red; Console.Error.WriteLine("Pogrešan podatak! " + red); Console.ResetColor(); } } return(listaPodataka); }
public void SetPocetniCvor(CompositeRaspored dolazniCvor) { PocetniCvor = new CompositeRaspored(); int indeksPrograma = 0; foreach (var program in dolazniCvor.GetChildList()) { CompositeRaspored noviProgram = new CompositeRaspored(); noviProgram.SetMojNaziv(program.GetMojNaziv()); PocetniCvor.AddChild(noviProgram); int indeksDana = 0; foreach (var dan in program.GetChildList()) { CompositeRaspored noviDan = new CompositeRaspored(); PocetniCvor.GetChildList()[indeksPrograma].AddChild(noviDan); foreach (var emisija in dan.GetChildList()) { Emisija em = emisija as Emisija; Emisija nova = TjedniPlanHelper.VratiNoviKopiraniObjekt(em); nova.SetRedniBroj(em.GetRedniBroj()); nova.SetVrijemePrikazivanja(em.GetVrijemePrikazivanja()); PocetniCvor.GetChildList()[indeksPrograma] .GetChildList()[indeksDana].AddChild(nova); } indeksDana++; } indeksPrograma++; } }
public override void Calculate(IComponentRaspored component) { List <string> listaNazivaVrsta = new List <string>(); List <int> pratecaListaCounterVrsta = new List <int>(); foreach (var emisija in component.GetChildList()) { Emisija em = emisija as Emisija; string vrsta = IspisHelper.DohvatiNazivVrsteEmisije(em.GetVrsta()); if (vrsta == "Nepoznata vrsta") { //onda nista, ovo je za emisije koje predstavljaju TV signal } else if (!listaNazivaVrsta.Contains(vrsta)) { listaNazivaVrsta.Add(vrsta); pratecaListaCounterVrsta.Add(1); } else { pratecaListaCounterVrsta[listaNazivaVrsta.IndexOf(vrsta)] += 1; } } IspisiStatistiku(listaNazivaVrsta, pratecaListaCounterVrsta); }
public EmitiranjeEmisija(Emisija emisija, TimeSpan pocetak, TimeSpan kraj, int redniBroj) { Emisija = emisija; Pocetak = pocetak; Kraj = kraj; RedniBroj = redniBroj; }
protected override void DodajPodatke() { if (File.Exists(putanja)) { string[] red = File.ReadAllLines(putanja).Skip(1).ToArray(); foreach (var r in red) { string[] parametri = r.Trim().Split(';'); if (parametri.Length > 6 || parametri.Length < 3) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("POGREŠKA: prilikom učitavanja emisija - red: " + r); Console.ResetColor(); } else { if (provjeraPostojanjaTrajanja(parametri, r)) { return; } if (provjeraPostojanjaVrste(parametri, r)) { return; } Emisija e = new Emisija(); e.Id = int.Parse(parametri[0]); e.naziv = parametri[1]; e.VrstaEmisije = int.Parse(parametri[2]); e.trajanje = int.Parse(parametri[3]); e.OsobaUloga = definiranjeOsobaUloge(parametri, e); ListaEntiteta.Add(e); } } } }
public EmitiranjeEmisija(Emisija emisija, TimeSpan pocetak) { Emisija = emisija; Pocetak = pocetak; if (pocetak != TimeSpan.Zero) { Kraj = pocetak + TimeSpan.FromMinutes(emisija.trajanje); } }
//TODO REFACTOR public static void KreirajRaspored() { foreach (var tvProgram in TvKuca.Instance.TvProgrami) { var preostaleEmisije = new List <Emisija>(); var emisijeBezdana = tvProgram.Emisije.ToList().Where(e => e.Dani.Count < 1).ToList(); for (var i = Dan.Ponedjeljak; i <= Dan.Nedjelja; i++) { var raspored = new DnevniRaspored { Dan = i, IdPrograma = tvProgram.Id, NazivPrograma = tvProgram.ImePrograma }; var emisije = new List <Emisija>(); //dodaj emisije u raspored //TODO Provjeri dal radi OrderBy DodajPrioritetne(emisije, tvProgram, i); //koji nisu upali u raspored dodaj u preostale preostaleEmisije.AddRange(emisije.Distinct().Where(emisija => !Emisija.DodajEmisijuDnevnomRasporedu(tvProgram, emisija, raspored, i))); //makni dane gdje se emisija dodala foreach (var emisija in preostaleEmisije.Where(a => a.Dani.Contains(i))) { if (Emisija.DodajEmisijuDnevnomRasporedu(tvProgram, emisija, raspored, i)) { preostaleEmisije.Remove(emisija); } } foreach (var emisija in preostaleEmisije.Distinct()) { foreach (var progr in TvKuca.Instance.TvProgrami.Where(pr => pr.Emisije.Count(e => e.Id == emisija.Id) > 0)) { foreach (var rasporedPrograma in progr.DohvatiDjecu().Cast <DnevniRaspored>() .Where(rasporedPrograma => rasporedPrograma.DohvatiDjecu().Count(c => ((EmisijaRasporeda)c).IdEmisije == emisija.Id) > 0)) { emisija.Dani.Remove(rasporedPrograma.Dan); } } } tvProgram.Dodaj(raspored); } foreach (DnevniRaspored raspored in tvProgram.DohvatiDjecu()) { foreach (var emisija in emisijeBezdana.ToList()) { if (Emisija.DodajEmisijuDnevnomRasporedu(tvProgram, emisija, raspored, raspored.Dan)) { emisijeBezdana.Remove(emisija); } } } } }
private static List <int> definiranjeOsobaUloge(string[] parametri, Emisija e) { List <int> privremena = new List <int>(); if (parametri[4] != "" && parametri[4] != " ") { string[] osobaUloga = parametri[4].Split(','); foreach (var o in osobaUloga) { privremena = e.kreirajOsobaUloga(o); } return(privremena); } return(null); }
public static void DohvatiOsobuUlogu(Emisija e) { 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); AzurirajOsobuUlugu(osoba, uloga); } catch (Exception exception) { Console.WriteLine("Ne postoji takav par osoba"); } } }
public int Visit(Emisija emisija) { int profitabilnihMinuta = 0; int vrsta = emisija.GetVrsta(); TvKucaSingleton tvKuca = TvKucaSingleton.GetTvKucaInstance(); VrstaEmisije vrstaEm = tvKuca.ListaVrstaEmisija.Find(x => x.GetId() == vrsta); if (vrstaEm != null) { if (vrstaEm.GetMozeImatReklame()) { profitabilnihMinuta = vrstaEm.GetMaxTrajanjeReklama(); } } return(profitabilnihMinuta); }
public void Add(IRasporedEmisija i) { if (ProvjeriPreklapanje(i)) { i.roditelj = this; var tmp = (EmitiranjeEmisija)i; var emisija1 = new Emisija(tmp.Emisija); VrstaEmisije vrstaTMP = new VrstaEmisije(); vrstaTMP = tmp.Emisija.vrsta; emisija1.vrsta = vrstaTMP; var prototype = new EmitiranjeEmisija(emisija1, tmp.Pocetak); prototype.RedniBroj = broj; listaEmisija.Add((EmitiranjeEmisija)prototype.clone()); broj++; listaEmisija = listaEmisija.OrderBy(a => ((EmitiranjeEmisija)a).Pocetak).ToList(); } }
private EmisijePrograma VratiNovuEmisijuPrograma(EmisijePrograma emisijaPrograma) { EmisijePrograma ep = new EmisijePrograma(); ep.Pocetak = emisijaPrograma.Pocetak; ep.ImaPočetak = emisijaPrograma.ImaPočetak; ep.OsobeUloge = emisijaPrograma.OsobeUloge; ep.RedniBroj = emisijaPrograma.RedniBroj; Emisija em = new Emisija(); em = emisijaPrograma.Emisija; ep.Emisija = em; ep.DaniUTjednu = emisijaPrograma.DaniUTjednu; ep.OsobeUloge = emisijaPrograma.OsobeUloge; return(ep); }
private static void ZabiljeziStanje(Emisija brisanaEm, int program, int dan) { PohranjenoStanje stanje = new PohranjenoStanje(); stanje.SetRedniBroj(ListaPohranjenihStanja.Count + 1); stanje.SetVrijemePohrane(DateTime.Now); TvKucaSingleton tvKuca = TvKucaSingleton.GetTvKucaInstance(); stanje.SetPocetniCvor(tvKuca.GetCompositeRaspored()); stanje.SetOpis("Stanje prije brisanja emisije (Redni br: " + brisanaEm.GetRedniBroj() + ") '" + brisanaEm.GetNaziv() + "' -> " + tvKuca.GetCompositeRaspored().GetChildList()[program].GetMojNaziv() + " - " + IspisHelper.UnesiBrojDobijDan(dan + 1)); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("Spremam novo stanje: "); Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine(stanje.GetOpis()); ListaPohranjenihStanja.Add(stanje); }
public static List <Emisija> DohvatiListuSvihEmisijaUCompositeu() { List <Emisija> lista = new List <Emisija>(); TvKucaSingleton tvKuca = TvKucaSingleton.GetTvKucaInstance(); foreach (var program in tvKuca.GetCompositeRaspored().GetChildList()) { foreach (var dan in program.GetChildList()) { foreach (var emisija in dan.GetChildList()) { Emisija em = emisija as Emisija; if (em.GetRedniBroj() != -1) { // -1 je fiksno signal TV kuce lista.Add(em); } } } } return(lista.OrderBy(x => x.GetRedniBroj()).ToList()); }
public override void UcitajZapise(string filePath) { String red; Boolean error = false; string message = ""; StreamReader file = new StreamReader(filePath); file.ReadLine(); while ((red = file.ReadLine()) != null) { String[] splitLine = red.Split(';', ','); String key; String value; if (splitLine.Count() > 1 || splitLine.Count() <= 4) { id = int.Parse(splitLine[0]); naziv = splitLine[1]; trajanje = int.Parse(splitLine[2]); if (splitLine.Length > 3 && !splitLine[3].Equals("")) { osoba1 = e.kreirajOsobaUloga(splitLine[3]); if (splitLine.Length > 4 && !splitLine[4].Equals("")) { osoba2 = e.kreirajOsobaUloga(splitLine[4]); } } e = new Emisija(id, naziv, trajanje, osoba1, osoba2); listaEmisijaParam.Add(e); } else { message = "Svojstvo je preskočeno - " + red + "zbog prevelikog broja argumenata"; } } }
public EmisijaConcreteBuilder() { emisija = new Emisija(); }