public ActionResult Create(NuevoEpisodioViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    EpisodioRepository episodioRepository = new EpisodioRepository(context);
                    var episodio = MapHelper.Map <Episodio>(model);
                    episodio.EstadosMedia  = EEstatusMedia.VISIBLE;
                    episodio.FechaRegistro = DateTime.Now;

                    episodioRepository.Insert(episodio);

                    context.SaveChanges();

                    return(RedirectToActionPermanent("Index", new { id = episodio.SerieId }));
                }
                else
                {
                    return(View(model));
                }
            }
            catch (Exception e)
            {
                ModelState.AddModelError("", e.Message);
                return(View(model));
            }
        }
예제 #2
0
        // GET: Serie/Details/5
        public ActionResult Details(int id)
        {
            #region Repositorios necesarios
            SerieRepository    serieRepository    = new SerieRepository(context);
            FavoritoRepository favoritoRepository = new FavoritoRepository(context);
            EpisodioRepository episodioRepository = new EpisodioRepository(context);
            #endregion

            #region Consulta la serie en la bd
            var   relaciones = new Expression <Func <Serie, object> >[] { s => s.Generos, s => s.Actores };
            Serie serie      = serieRepository.QueryIncluding(s => s.MediaId == id, relaciones, "FechaRegistro").SingleOrDefault();


            #endregion

            #region Mapeo de la serie con su view model adecuado
            var model = MapHelper.Map <CompletoSerieViewModel>(serie);

            bool enFav = favoritoRepository.Query(x => x.mediaId == id).Count() > 0;
            if (enFav == true)
            {
                var TodoFav = favoritoRepository.Query(x => x.mediaId == id).First();
                var idFav   = TodoFav.id;
                model.IdFavorito = idFav;
            }
            model.MiFavorito = enFav;
            model.Temporadas = episodioRepository.Query(e => e.SerieId == model.MediaId && e.EstadosMedia == EEstatusMedia.VISIBLE).OrderBy(e => e.Temporada).Select(e => e.Temporada.Value).Distinct().ToArray();
            model.esMovie    = true;
            #endregion

            return(View(model));
        }
        public ActionResult Delete(int id, EliminadoSerieViewModel model)
        {
            SerieRepository repository = new SerieRepository(context);

            try
            {
                EpisodioRepository episodioRepository = new EpisodioRepository(context);

                var serie     = repository.Find(id);
                var episodios = episodioRepository.Query(e => e.SerieId == id);
                serie.EstadosMedia = EEstatusMedia.ELIMINADO;
                repository.Update(serie);
                foreach (var episodio in episodios)
                {
                    episodio.EstadosMedia = EEstatusMedia.ELIMINADO;
                    episodioRepository.Update(episodio);
                }

                context.SaveChanges();
                return(RedirectToAction("Index"));
            }

            catch
            {
                var modeloNuevo = repository.Find(id);
                var includes    = new Expression <Func <Serie, object> >[] { s => s.Actores, s => s.Generos };
                var serie       = repository.QueryIncluding(s => s.MediaId == id, includes).SingleOrDefault();
                model = MapHelper.Map <EliminadoSerieViewModel>(serie);

                return(View(model));
            }
        }
        // GET: Episodio/Edit/5
        public ActionResult Edit(int id)
        {
            var repository = new EpisodioRepository(context);
            var episodio   = repository.Find(id);
            var model      = MapHelper.Map <ModificadoEpisodioViewModel>(episodio);

            return(View(model));
        }
예제 #5
0
        public ActionResult Edit(int id, EpisodioViewModel model)
        {
            try
            {
                // TODO: Add update logic here
                EpisodioRepository episodioRepository = new EpisodioRepository(context);

                if (ModelState.IsValid)
                {
                    var episodio = episodioRepository.Query(e => e.id == id).First();
                    episodio = Update(episodio, model);

                    var lstEpisodios = episodioRepository.Query(e => e.serieId == episodio.serieId);

                    ViewBag.Serie = episodio.Serie.nombre;

                    #region Validaciones
                    foreach (var e in lstEpisodios)
                    {
                        if (e.id != id)
                        {
                            if (e.nombre.ToLower() == episodio.nombre.ToLower())
                            {
                                if (e.fechaLanzamiento == episodio.fechaLanzamiento)
                                {
                                    ViewBag.Error = 1;
                                    return(Edit(id));
                                }
                            }
                        }
                        if (e.temporada == episodio.temporada)
                        {
                            if (e.numEpisodio == episodio.numEpisodio)
                            {
                                ViewBag.Error = 2;
                                return(Edit(id));
                            }
                        }
                    }
                    #endregion

                    context.Entry(episodio).Collection(e => e.Actores).Load();
                    context.Entry(episodio).Collection(e => e.Generos).Load();
                    context.Entry(episodio).Collection(e => e.Opiniones).Load();
                    context.Entry(episodio).Reference(e => e.Serie).Load();

                    episodioRepository.Update(episodio);
                    context.SaveChanges();
                    return(RedirectToAction("Index", new { id = episodio.serieId }));
                }

                return(Edit(id));
            }
            catch
            {
                return(Edit(id));
            }
        }
        public ActionResult ConsultarPorTemporada(int id)
        {
            EpisodioRepository episodioRepositoy = new EpisodioRepository(context);
            var episodios = episodioRepositoy.Query(e => e.Temporada == id && e.EstadosMedia == EEstatusMedia.VISIBLE);
            var Episodios = MapHelper.Map <ICollection <EpisodioCarrucelViewModel> >(episodios);

            return(Json(new
            {
                Success = true,
                Episodios = JsonConvert.SerializeObject(Episodios)
            }, JsonRequestBehavior.AllowGet));
        }
예제 #7
0
        // GET: ManageEpisodio/Delete/5
        public ActionResult Delete(int id)
        {
            EpisodioRepository episodioRepository = new EpisodioRepository(context);

            var episodio = episodioRepository.Query(s => s.id == id).First();

            context.Entry(episodio).Reference(e => e.Serie).Load();

            ViewBag.Serie = episodio.Serie.nombre;

            var model = MapHelper.Map <EpisodioViewModel>(episodio);

            return(View(model));
        }
        // GET: Episodio/5
        public ActionResult Index(int id)
        {
            var serieRepository    = new SerieRepository(context);
            var episodioRepository = new EpisodioRepository(context);

            var serie      = serieRepository.Find(id);
            var serieModel = MapHelper.Map <DetalladoSerieViewModel>(serie);

            var episodios      = episodioRepository.Query(e => e.SerieId == id).Where(e => e.EstadosMedia == EEstatusMedia.VISIBLE || e.EstadosMedia == EEstatusMedia.INVISIBLE);
            var episodiosModel = MapHelper.Map <ICollection <EpisodioViewModel> >(episodios);

            serieModel.Episodios = episodiosModel;

            return(View(serieModel));
        }
        public ActionResult Edit(ModificadoEpisodioViewModel model)
        {
            try
            {
                EpisodioRepository repository = new EpisodioRepository(context);
                var episodio = MapHelper.Map <Episodio>(model);
                repository.Update(episodio);
                context.SaveChanges();

                return(RedirectToAction("Index", new { id = episodio.SerieId }));
            }
            catch
            {
                return(View());
            }
        }
예제 #10
0
        // GET: ManageEpisodio
        public ActionResult Index(int id)
        {
            VideoOnDemandContext context            = new VideoOnDemandContext();
            EpisodioRepository   episodioRepository = new EpisodioRepository(context);
            SerieRepository      serieRepository    = new SerieRepository(context);

            // Consultar los episodios de la serie asignada
            var lstEpisodio = episodioRepository.Query(e => e.serieId.Value == id && e.estado != EEstatusMedia.ELIMINADO).OrderBy(e => e.numEpisodio).OrderBy(e => e.temporada);

            // Mapear la lista de series con una lista de SerieViewModel
            var models = MapHelper.Map <IEnumerable <EpisodioViewModel> >(lstEpisodio);

            ViewBag.Serie   = serieRepository.Query(s => s.id == id).FirstOrDefault().nombre;
            ViewBag.SerieId = serieRepository.Query(s => s.id == id).FirstOrDefault().id;

            return(View(models));
        }
        public ActionResult Delete(int id, int serieId)
        {
            EpisodioRepository repository = new EpisodioRepository(context);

            try
            {
                var episodio = repository.Find(id);
                episodio.EstadosMedia = EEstatusMedia.ELIMINADO;
                repository.Update(episodio);
                context.SaveChanges();

                return(RedirectToAction("Index", new { id = episodio.SerieId }));
            }

            catch
            {
                var episodio = repository.Find(id);
                var model    = MapHelper.Map <ModificadoEpisodioViewModel>(episodio);
                return(View(model));
            }
        }
예제 #12
0
        public ActionResult Delete(int id, EpisodioViewModel model)
        {
            try
            {
                // TODO: Add delete logic here
                EpisodioRepository episodioRepository = new EpisodioRepository(context);

                var episodio = episodioRepository.Query(s => s.id == id).First();

                context.Entry(episodio).Reference(e => e.Serie).Load();

                ViewBag.Serie = episodio.Serie.nombre;

                episodioRepository.LogicalDelete(episodio);
                context.SaveChanges();
                return(RedirectToAction("Index", new { id = episodio.serieId }));
            }
            catch
            {
                return(View(model));
            }
        }
예제 #13
0
        public ActionResult Create(EpisodioViewModel model)
        {
            try
            {
                // TODO: Add insert logic here
                EpisodioRepository episodioRepository = new EpisodioRepository(context);
                SerieRepository    serieRepository    = new SerieRepository(context);

                if (ModelState.IsValid)
                {
                    var serie    = serieRepository.Query(s => s.id == model.id).First();
                    var episodio = MapHelper.Map <Episodio>(model);

                    var lstEpisodios = episodioRepository.Query(e => e.serieId == model.id);

                    context.Entry(serie).Collection(s => s.Generos).Load();
                    context.Entry(serie).Collection(s => s.Actores).Load();

                    episodio.Serie         = serie;
                    episodio.serieId       = model.id;
                    episodio.Actores       = serie.Actores;
                    episodio.Generos       = serie.Generos;
                    episodio.fechaRegistro = DateTime.Now;

                    ViewBag.Serie = serie.nombre;

                    #region Validaciones
                    foreach (var e in lstEpisodios)
                    {
                        if (e.nombre.ToLower() == episodio.nombre.ToLower())
                        {
                            if (e.fechaLanzamiento == episodio.fechaLanzamiento)
                            {
                                ViewBag.Error = 1;
                                return(Create(model.id));
                            }
                        }
                        if (e.temporada == episodio.temporada)
                        {
                            if (e.numEpisodio == episodio.numEpisodio)
                            {
                                ViewBag.Error = 2;
                                return(Create(model.id));
                            }
                        }
                    }
                    #endregion

                    episodioRepository.Insert(episodio);

                    context.SaveChanges();

                    return(RedirectToAction("Index", new { id = episodio.serieId }));
                }

                return(Create(model.id));
            }
            catch
            {
                return(Create(model.id));
            }
        }