//----------------------------------
        //----- Comentarios
        //----------------------------------
        public int GuardarComentario(ComentarioDTO comentarioDTO)
        {
            SeriesDBEntities se = new SeriesDBEntities();

#if DEBUG
            se.Database.Log = s => Console.WriteLine(s);
#endif
            Comentarios comentario;

            if (comentarioDTO.idcomment.HasValue)
            {
                comentario = se.Comentarios.SingleOrDefault(c => c.idcomment == comentarioDTO.idcomment);
            }
            else
            {
                comentario = new Comentarios();
                Series   serie   = se.Series.SingleOrDefault(c => c.idserie == comentario.idserie);
                Usuarios usuario = se.Usuarios.SingleOrDefault(c => c.iduser == comentario.iduser);
                comentario.Series      = serie;
                comentario.Usuarios    = usuario;
                comentario.commentdate = DateTime.Today;
                se.Comentarios.Add(comentario);
            }

            Mapping.CargarComentarioDTOAComentario(comentarioDTO, comentario);


            se.SaveChanges();

            return(comentario.idcomment);
        }
        public int GuardarSerie(SerieDTO serieDTO)
        {
            SeriesDBEntities se = new SeriesDBEntities();

#if DEBUG
            se.Database.Log = s => Console.WriteLine(s);
#endif
            Series serie;

            if (serieDTO.idserie.HasValue)
            {
                serie = se.Series.SingleOrDefault(c => c.idserie == serieDTO.idserie);
            }
            else
            {
                serie = new Series();
                se.Series.Add(serie);
            }

            Mapping.CargarSerieDTOASerie(serieDTO, serie);

            se.SaveChanges();

            return(serie.idserie);
        }
        public int GuardarUsuario(UsuarioDTO usuarioDTO)
        {
            SeriesDBEntities se = new SeriesDBEntities();

#if DEBUG
            se.Database.Log = s => Console.WriteLine(s);
#endif
            Usuarios usuario;

            if (usuarioDTO.iduser.HasValue)
            {
                usuario = se.Usuarios.SingleOrDefault(c => c.iduser == usuarioDTO.iduser);
            }
            else
            {
                usuario           = new Usuarios();
                usuario.admission = DateTime.Today;
                se.Usuarios.Add(usuario);
            }

            Mapping.CargarUsuarioDTOAUsuario(usuarioDTO, usuario);

            se.SaveChanges();

            return(usuario.iduser);
        }
        //----------------------------------
        //----- Capitulos
        //----------------------------------

        public Capitulos GuardarCapitulo(CapituloDTO capituloDTO)
        {
            SeriesDBEntities se = new SeriesDBEntities();

#if DEBUG
            se.Database.Log = s => Console.WriteLine(s);
#endif
            Capitulos capitulo;

            if (capituloDTO.idchapter.HasValue)
            {
                capitulo = se.Capitulos.SingleOrDefault(c => c.idchapter == capituloDTO.idchapter);
            }
            else
            {
                capitulo = new Capitulos();
                se.Capitulos.Add(capitulo);
            }

            Mapping.CargarCapituloDTOACapitulo(capituloDTO, capitulo);

            se.SaveChanges();

            return(capitulo);
        }
        //----------------------------------
        //----- Temporada
        //----------------------------------

        public int GuardarTemporada(TemporadaDTO temporadaDTO)
        {
            SeriesDBEntities se = new SeriesDBEntities();

#if DEBUG
            se.Database.Log = s => Console.WriteLine(s);
#endif
            Temporadas temporada;

            if (temporadaDTO.idseanson.HasValue)
            {
                temporada = se.Temporadas.SingleOrDefault(c => c.idseanson == temporadaDTO.idseanson);
            }
            else
            {
                temporada = new Temporadas();
                se.Temporadas.Add(temporada);
            }

            Mapping.CargarTemporadaDTOATemporada(temporadaDTO, temporada);
            foreach (CapituloDTO capitulo in temporadaDTO.capitulos)
            {
                temporada.Capitulos.Add(GuardarCapitulo(capitulo));
            }

            se.SaveChanges();

            return(temporada.idseanson);
        }
        public bool BorrarComentario(int idcomment)
        {
            SeriesDBEntities se = new SeriesDBEntities();

#if DEBUG
            se.Database.Log = s => Console.WriteLine(s);
#endif
            se.Comentarios.Remove(se.Comentarios.SingleOrDefault(c => c.idcomment == idcomment));

            se.SaveChanges();

            return(true);
        }
        public bool DejarSerie(int idserie, int iduser)
        {
            SeriesDBEntities se = new SeriesDBEntities();

#if DEBUG
            se.Database.Log = s => Console.WriteLine(s);
#endif
            se.Usuario_Series.Remove(se.Usuario_Series.SingleOrDefault(c => (c.iduser == iduser) && (c.idserie == idserie)));

            se.SaveChanges();

            return(true);
        }
        public bool QuitarActor(int idserie, int idactor)
        {
            SeriesDBEntities se = new SeriesDBEntities();

#if DEBUG
            se.Database.Log = s => Console.WriteLine(s);
#endif
            Series serie = se.Series.SingleOrDefault(c => c.idserie == idserie);
            serie.Actores.Remove(serie.Actores.SingleOrDefault(c => c.idactor == idactor));

            se.SaveChanges();

            return(true);
        }
        public bool BorrarCapitulo(int id)
        {
            SeriesDBEntities se = new SeriesDBEntities();

#if DEBUG
            se.Database.Log = s => Console.WriteLine(s);
#endif

            se.Capitulos.Remove(se.Capitulos.SingleOrDefault(c => c.idchapter == id));

            se.SaveChanges();

            return(true);
        }
        public bool SeguirSerie(int idserie, int iduser)
        {
            SeriesDBEntities se = new SeriesDBEntities();

#if DEBUG
            se.Database.Log = s => Console.WriteLine(s);
#endif
            Series   serie   = se.Series.SingleOrDefault(c => c.idserie == idserie);
            Usuarios usuario = se.Usuarios.SingleOrDefault(c => c.iduser == iduser);
            se.Usuario_Series.Add(Mapping.CargarSerie_Usuario(serie, usuario));

            se.SaveChanges();

            return(true);
        }
        public bool BorrarSerie(int id)
        {
            SeriesDBEntities se = new SeriesDBEntities();

#if DEBUG
            se.Database.Log = s => Console.WriteLine(s);
#endif
            var serie = se.Series.SingleOrDefault(c => c.idserie == id);
            foreach (Temporadas temporada in serie.Temporadas)
            {
                BorrarTemporada(temporada.idseanson);
            }
            se.Series.Remove(serie);

            se.SaveChanges();

            return(true);
        }
        public bool BorrarTemporada(int id)
        {
            SeriesDBEntities se = new SeriesDBEntities();

#if DEBUG
            se.Database.Log = s => Console.WriteLine(s);
#endif
            var temporada = se.Temporadas.SingleOrDefault(c => c.idseanson == id);
            foreach (Capitulos capitulo in temporada.Capitulos)
            {
                BorrarCapitulo(capitulo.idchapter);
            }
            se.Temporadas.Remove(temporada);

            se.SaveChanges();

            return(true);
        }