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
 public Countdown()
 {
     timer          = new Timer();
     timer.Interval = 2000;
     tvProgram      = new TvProgram();
     timer.Elapsed += Tick;
 }
Esempio n. 3
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. 4
0
        private void CreateChannelBreaks(Channel channel)
        {
            TvBreak currentBreak = null;

            foreach (BaseActivity activity in channel.Activities)
            {
                if (activity is TvProgram)
                {
                    TvProgram program = activity as TvProgram;
                    AddBreakToChannelIfNotEmpty(currentBreak, channel);
                    currentBreak = new TvBreak()
                    {
                        StartTime = program.EndTime,
                    };
                }
                else
                {
                    if (currentBreak == null)
                    {
                        currentBreak = new TvBreak()
                        {
                            StartTime = activity.StartTime,
                        };
                    }
                    currentBreak.Activities.Add(activity);
                    if (activity is AdvertisementInstance)
                    {
                        currentBreak.AddAdvertisement(activity as AdvertisementInstance);
                    }
                }
            }
            AddBreakToChannelIfNotEmpty(currentBreak, channel);
        }
Esempio n. 5
0
 public static void IspisiSve()
 {
     Osoba.Ispis();
     VrstaEmisije.Ispis();
     Uloga.Ispis();
     TvProgram.Ispis();
     //Emisija.Ispis();
 }
Esempio n. 6
0
 public override bool Matches(TvProgram program)
 {
     if (program.Type != TvProgram.ProgramType.Film)
     {
         return(false);
     }
     return(program.Genre == GenreName);
 }
Esempio n. 7
0
        public override bool Matches(TvProgram program)
        {
            if (program.Type != TvProgram.ProgramType.Film)
            {
                return(false);
            }

            return(program.IsItalian);
        }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            TvProgram tvProgram = await dbContext.TvPrograms.FindAsync(id);

            dbContext.TvPrograms.Remove(tvProgram);
            await dbContext.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Esempio n. 9
0
 private static void DodajPrioritetne(List <Emisija> emisije, TvProgram tvProgram, Dan i)
 {
     emisije.AddRange(tvProgram.Emisije.Where(e =>
                                              e.Dani.Count >= 1 && e.Dani.Contains(i) && e.PocetakEmitiranjaEmisije != null)
                      .OrderBy(a => a.PocetakEmitiranjaEmisije)
                      .OrderBy(d => d.Dani.Count)
                      .ThenBy(p => p.PocetakEmitiranjaEmisije));
     emisije.AddRange(tvProgram.Emisije.Where(e =>
                                              e.Dani.Count >= 1 && e.Dani.Contains(i) && e.PocetakEmitiranjaEmisije == null));
 }
Esempio n. 10
0
 public void DeleteReservation(TvProgram program)
 {
     using (TvContext context = new TvContext())
     {
         TvProgram old = context.Programs.First(p => p.ProgramId == program.ProgramId);
         context.Entry(old).State                 = System.Data.Entity.EntityState.Modified;
         context.Entry(old).Entity.Reserved       = null;
         context.Entry(old).Entity.ReservedRoomId = null;
         context.SaveChanges();
     }
 }
Esempio n. 11
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. 12
0
 public void DeleteProgram(TvProgram program)
 {
     if (program != null)
     {
         using (TvContext context = new TvContext())
         {
             TvProgram p = context.Programs.Find(program.ProgramId);
             context.Entry(p).State = System.Data.Entity.EntityState.Deleted;
             context.Programs.Remove(p);
             context.SaveChanges();
         }
     }
 }
        private void AnalyzeProgram(string line)
        {
            string[]  fields  = line.Split(' ');
            TvProgram program = new TvProgram()
            {
                Span      = new TimeSpan(0, 0, Convert.ToInt32(fields[1])),
                StartTime = currentChannel.EndTime,
            };

            program.EndTime = currentChannel.EndTime = currentChannel.EndTime.Add(program.Span);
            currentChannel.Programs.Add(program);
            currentChannel.Activities.Add(program);
        }
Esempio n. 14
0
        private void Tick(object sender, ElapsedEventArgs args)
        {
            TvProgram newProgram = TvProgramManager.GetNextProgram(new TimeSpan(0, 15, 0));

            if (newProgram != null && newProgram.ProgramId != tvProgram.ProgramId)
            {
                tvProgram = newProgram;
                ProgramIncoming?.Invoke(this, new TvProgramIncomingEventArgs()
                {
                    TVProgram = tvProgram
                });
            }
        }
        public async Task <ActionResult> Create([Bind(Include = "ID,Title,Details,Broadcasting,Duration,TvChannelID")] TvProgram tvProgram)
        {
            if (ModelState.IsValid)
            {
                dbContext.TvPrograms.Add(tvProgram);
                await dbContext.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            ViewBag.TvChannelID = new SelectList(dbContext.TvChannels, "ID", "Name", tvProgram.TvChannelID);
            return(View(tvProgram));
        }
        public async Task <ActionResult> Edit([Bind(Include = "ID,Title,Details,Broadcasting,EndTime,TvChannelID ,Duration, IsInFocus")] TvProgram tvProgram)
        //public async Task<ActionResult> Edit([Bind(Include = "ID,Title,Details, IsInFocus")] TvProgram tvProgram)
        {
            if (ModelState.IsValid)
            {
                dbContext.Entry(tvProgram).State = EntityState.Modified;
                await dbContext.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.TvChannelID = new SelectList(dbContext.TvChannels, "ID", "Name", tvProgram.TvChannelID);
            return(View(tvProgram));
        }
        // GET: TvProgram/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TvProgram tvProgram = await dbContext.TvPrograms.FindAsync(id);

            if (tvProgram == null)
            {
                return(HttpNotFound());
            }
            return(View(tvProgram));
        }
Esempio n. 18
0
        public override bool Matches(TvProgram program)
        {
            if (program.Type != TvProgram.ProgramType.SerieTv)
            {
                return(false);
            }

            return(program.IsItalian);

            //  var movie = program as Movie;
            //  if (movie == null) return false;
            //    if (program.Cast == null) return false;
            //   return Utils.IsItalianCast(program.Cast);
        }
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TvProgram tvProgram = await dbContext.TvPrograms.FindAsync(id);

            if (tvProgram == null)
            {
                return(HttpNotFound());
            }
            ViewBag.TvChannelID = new SelectList(dbContext.TvChannels, "ID", "Name", tvProgram.TvChannelID);
            return(View(tvProgram));
        }
Esempio n. 20
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            TvProgram = await _context.TvPrograms.FirstOrDefaultAsync(m => m.Id == id);

            if (TvProgram == null)
            {
                return(NotFound());
            }
            return(Page());
        }
Esempio n. 21
0
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            TvProgram = await _context.TvPrograms.FindAsync(id);

            if (TvProgram != null)
            {
                _context.TvPrograms.Remove(TvProgram);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
Esempio n. 22
0
        public async Task UpdateTvProgramAsync(TvProgram tvProgram)
        {
            var entity = await _context.TvPrograms
                         .Include(x => x.DefaultSchedules)
                         .SingleOrDefaultAsync(x => x.Id == tvProgram.Id);

            if (entity == null)
            {
                throw new NotFoundException(nameof(TvProgram), tvProgram.Id);
            }

            // TODO: _context.Entry(entity).State = EntityState.Modified;
            entity.Name             = tvProgram.Name;
            entity.DefaultSchedules = tvProgram.DefaultSchedules;

            await _context.SaveChangesAsync();
        }
Esempio n. 23
0
 //TV program lefoglalása.
 /// <summary>
 /// TV program lefoglalása egy adott szobához
 /// </summary>
 /// <param name="program">Foglalandó műsor</param>
 /// <param name="room">Lefoglaló szoba</param>
 public static void ReserveTvProgram(TvProgram program, Room room)
 {
     using (TvContext context = new TvContext())
     {
         try
         {
             TvProgram prg = context.Programs.Find(program.ProgramId);
             Room      r   = context.Rooms.Find(room.RoomId);
             prg.Reserved = r;
             context.SaveChanges();
         }
         catch (Exception)
         {
             MessageBox.Show("Nem sikerült a foglalás.\nHiba lépett fel. Frissítsen és próbálja újra.", "Hiba.", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }
Esempio n. 24
0
        private void AddTvProgramToList(TvProgram program)
        {
            ListViewItem item = new ListViewItem();

            item.Tag = program;
            item.SubItems.Add(program.TvChannel);
            item.SubItems.Add(program.StartTime.ToString("yyyy.MM.dd"));
            item.SubItems.Add(program.StartTime.ToString("HH:mm:ss"));
            item.SubItems.Add(program.AgeLimit.ToString());
            item.SubItems.Add(program.EndTime.ToString("HH:mm:ss"));
            if (program.ReservedRoomId != null)
            {
                item.SubItems.Add(program.ReservedRoomId.ToString());
            }

            item.Text = program.Title;
            programList.Items.Add(item);
        }
Esempio n. 25
0
        public List <TvProgram> GenerateRandomPrograms(string channel, DateTime day, string showNamesFile)
        {
            List <TvProgram> programs = new List <TvProgram>();

            try
            {
                List <string> names = new List <string>();
                using (StreamReader sr = new StreamReader(showNamesFile, Encoding.UTF8))
                {
                    while (!sr.EndOfStream)
                    {
                        names.Add(sr.ReadLine());
                    }
                }
                DateTime[] times = WatchTimeGenerator(new DateTime(day.Year, day.Month, day.Day, 0, 0, 0));

                while (times[0].Hour != 23 && times[0].Minute != 59 && times[0].Second != 59)
                {
                    TvProgram newProgram = new TvProgram();
                    newProgram.TvChannel = channel;
                    newProgram.Title     = names[r.Next(names.Count)];
                    newProgram.AgeLimit  = AgeLimitGenerator();
                    newProgram.Genre     = GenreGenerator();
                    newProgram.StartTime = times[0];
                    newProgram.EndTime   = times[1];
                    times = WatchTimeGenerator(times[1]);
                    programs.Add(newProgram);
                    //Console.WriteLine(newProgram.Title);
                    //Console.WriteLine(newProgram.StartTime);
                    //Console.WriteLine(newProgram.EndTime);
                }
            }
            catch (FileNotFoundException)
            {
                MessageBox.Show("A műsorokat tartalmazó fájl nem létezik.");
            }
            catch (Exception)
            {
                MessageBox.Show("Sikertelen a generálás.");
            }
            return(programs);
        }
Esempio n. 26
0
        public static bool UcitajDatoteke(string[] args)
        {
            Console.WriteLine("Započinjem s učitavanjem podataka...");
            var pocetnaProvjeraDatoteka = ProvjeraDatotekeSingleton.GetInstance.ProvjeriDatoteke(args.ToList());

            Console.WriteLine();
            if (pocetnaProvjeraDatoteka)
            {
                var listaArgumenata = args.ToList();
                UcitaniPodaci.UcitajOsobe(listaArgumenata);
                UcitaniPodaci.UcitajUloge(listaArgumenata);
                UcitaniPodaci.UcitajVrste(listaArgumenata);
                UcitaniPodaci.UcitajPrograme(listaArgumenata);
                UcitaniPodaci.UcitajEmisije(listaArgumenata);
                TvProgram.DodajPopunjenjePrograme();
                DnevniRaspored.KreirajRaspored();
            }

            return(pocetnaProvjeraDatoteka);
        }
Esempio n. 27
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);
        }
Esempio n. 28
0
 public bool ValidateProgram(TvProgram program)
 {
     if (program.Title == "")
     {
         throw new TvProgramCreateEditException("Kötelező címet megadni.", TvProgramCreateEditExceptionDetails.EmptyField);
     }
     if (program.TvChannel == "")
     {
         throw new TvProgramCreateEditException("Kötelező TV csatornát megadni.", TvProgramCreateEditExceptionDetails.EmptyField);
     }
     if (program.Genre == 0)
     {
         throw new TvProgramCreateEditException("Kötelező legalább egy műfajt megadni.", TvProgramCreateEditExceptionDetails.EmptyField);
     }
     if (program.StartTime > program.EndTime)
     {
         throw new TvProgramCreateEditException("Nem kezdődhet később a műsor, mint ahogy vége van.", TvProgramCreateEditExceptionDetails.WrongDateRange);
     }
     using (TvContext context = new TvContext())
     {
         var collision = from p in context.Programs
                         where
                         p.TvChannel == program.TvChannel
                         &&
                         System.Data.Entity.Core.Objects.EntityFunctions.DiffDays(p.StartTime, program.StartTime) == 0
                         &&
                         p.StartTime <= program.StartTime
                         &&
                         p.EndTime > program.StartTime
                         &&
                         p.ProgramId != program.ProgramId
                         select p;
         if (collision.Count() > 0)
         {
             throw new TvProgramCreateEditException($"Ebben az időpontban már van felvéve Tv műsor\n{program.Title} {program.StartTime.TimeOfDay} - {program.EndTime.TimeOfDay}", TvProgramCreateEditExceptionDetails.Collision);
         }
         return(true);
     }
 }
Esempio n. 29
0
 public void AddTvProgram(TvProgram program)
 {
     if (this.ValidateProgram(program))
     {
         using (TvContext context = new TvContext())
         {
             if (program.ProgramId != 0)
             {
                 TvProgram old = context.Programs.First(p => p.ProgramId == program.ProgramId);
                 context.Entry(old).State = System.Data.Entity.EntityState.Modified;
                 context.Entry(old).CurrentValues.SetValues(program);
                 //Console.WriteLine(context.Entry(old).Entity.Title);
                 context.SaveChanges();
             }
             else
             {
                 context.Programs.Add(program);
                 context.SaveChanges();
             }
         }
     }
 }
Esempio n. 30
0
 public VrsteEmisijaPoTjednu(TvProgram program, int vrstaEmisije)
 {
     Program      = program;
     VrstaEmisije = vrstaEmisije;
 }