public async Task ReturnPartialViewResult_WhenCalled()
        {
            // Arrange
            Mock <ISerieService> serieServiceMock = new Mock <ISerieService>();
            Mock <IPDFService>   pDFServiceMock   = new Mock <IPDFService>();
            Mock <IMemoryCache>  memoryCacheMock  = new Mock <IMemoryCache>();

            string validSortOrder  = string.Empty;
            string validFilter     = string.Empty;
            int    validPageNumber = 1;
            int    validPageSize   = 10;

            IPagedList <Serie> teams = new PagedList <Serie>(new List <Serie>().AsQueryable(), validPageNumber, validPageSize);

            serieServiceMock.Setup(mock => mock.FilterSeriesAsync(validSortOrder, validFilter, validPageNumber, validPageSize))
            .Returns(Task.FromResult(teams));

            SerieController SUT = new SerieController(
                serieServiceMock.Object,
                pDFServiceMock.Object,
                memoryCacheMock.Object);

            // Act
            var result = await SUT.Filter(validSortOrder, validFilter, validPageNumber, validPageSize);

            // Assert
            Assert.IsInstanceOfType(result, typeof(PartialViewResult));
        }
Beispiel #2
0
        public static void programController(string pOptionSelected, SerieController pController)
        {
            switch (pOptionSelected)
            {
            case "1":
                pController.List();
                break;

            case "2":
                pController.Insert();
                break;

            case "3":
                pController.Update();
                break;

            case "4":
                pController.Delete();
                break;

            case "5":
                pController.ReturnById();
                break;

            case "6":
                pController.Clean();
                break;

            default:
                Console.WriteLine("COMANDO INVALIDO");
                break;
            }
        }
Beispiel #3
0
        public async Task ReturnCorrectViewModel_WhenCalled()
        {
            // Arrange
            Mock <ISerieService> serieServiceMock = new Mock <ISerieService>();
            Mock <IPDFService>   pDFServiceMock   = new Mock <IPDFService>();
            Mock <IMemoryCache>  memoryCacheMock  = new Mock <IMemoryCache>();

            string validId = string.Empty;

            Serie validSerieResult = new Serie();

            serieServiceMock.Setup(mock => mock.FindAsync(validId))
            .Returns(Task.FromResult(validSerieResult));

            SerieController SUT = new SerieController(
                serieServiceMock.Object,
                pDFServiceMock.Object,
                memoryCacheMock.Object);

            // Act
            var result = await SUT.Details(validId) as ViewResult;

            // Assert
            Assert.IsInstanceOfType(result.Model, typeof(SerieDetailsViewModel));
        }
        private void btnSalvar_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Serie serie = new Serie();

                serie.Nome     = txtNome.Text;
                serie.Status   = txtStatus.Text;
                serie.Tot_Ep   = txtTot_Ep.Text;
                serie.Ep_Atual = txtEp_Atual.Text;
                serie.Genero1  = txtGenero1.Text;
                serie.Genero2  = txtGenero2.Text;
                serie.Genero3  = txtGenero3.Text;
                serie.Nota     = txtNota.Text;

                SerieController serieController = new SerieController();
                serieController.Adicionar(serie);


                MessageBox.Show("Série salva com exito!");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao salvar a série (" + ex.Message + ")");
            }
        }
        public async Task ThrowApplicationException_WhenSeriesIsNull()
        {
            // Arrange
            Mock <ISerieService> serieServiceMock = new Mock <ISerieService>();
            Mock <IPDFService>   pDFServiceMock   = new Mock <IPDFService>();
            Mock <IMemoryCache>  memoryCacheMock  = new Mock <IMemoryCache>();

            string validSortOrder  = string.Empty;
            string validFilter     = string.Empty;
            int    validPageNumber = 1;
            int    validPageSize   = 10;

            IPagedList <Serie> series = null;

            serieServiceMock.Setup(mock => mock.FilterSeriesAsync(validSortOrder, validFilter, validPageNumber, validPageSize))
            .Returns(Task.FromResult(series));

            SerieController SUT = new SerieController(
                serieServiceMock.Object,
                pDFServiceMock.Object,
                memoryCacheMock.Object);

            // Act & Assert
            await Assert.ThrowsExceptionAsync <ApplicationException>(() =>
                                                                     SUT.Download(validSortOrder, validFilter, validPageNumber, validPageSize));
        }
Beispiel #6
0
        public async Task CallFindAsync_WhenCalled()
        {
            // Arrange
            Mock <ISerieService> serieServiceMock = new Mock <ISerieService>();
            Mock <IPDFService>   pDFServiceMock   = new Mock <IPDFService>();
            Mock <IMemoryCache>  memoryCacheMock  = new Mock <IMemoryCache>();

            string validId = string.Empty;

            Serie validSerieResult = new Serie();

            serieServiceMock.Setup(mock => mock.FindAsync(validId))
            .Returns(Task.FromResult(validSerieResult));

            SerieController SUT = new SerieController(
                serieServiceMock.Object,
                pDFServiceMock.Object,
                memoryCacheMock.Object);

            // Act
            await SUT.Details(validId);

            // Assert
            serieServiceMock.Verify(mock => mock.FindAsync(validId), Times.Once);
        }
 public void Init()
 {
     _serieRepositoryMock = new Mock <ISerieRepository>();
     _brandRepositoryMock = new Mock <IBrandRepository>();
     _mapperMock          = new Mock <IMapper>();
     _sut = new SerieController(_serieRepositoryMock.Object, _brandRepositoryMock.Object, _mapperMock.Object);
 }
        public async Task ReturnCorrectViewModel_WhenCalled()
        {
            // Arrange
            Mock <ISerieService> serieServiceMock = new Mock <ISerieService>();
            Mock <IPDFService>   pDFServiceMock   = new Mock <IPDFService>();
            IMemoryCache         memoryCacheMock  = new MemoryCache(new MemoryCacheOptions());

            string validSortOrder  = string.Empty;
            string validFilter     = string.Empty;
            int    validPageNumber = 1;
            int    validPageSize   = 10;

            IPagedList <Serie> spells = new PagedList <Serie>(new List <Serie>().AsQueryable(), validPageNumber, validPageSize);

            serieServiceMock.Setup(mock => mock.FilterSeriesAsync(validSortOrder, validFilter, validPageNumber, validPageSize))
            .Returns(Task.FromResult(spells));

            SerieController SUT = new SerieController(
                serieServiceMock.Object,
                pDFServiceMock.Object,
                memoryCacheMock);

            // Act
            var result = await SUT.Index() as ViewResult;

            // Assert
            Assert.IsInstanceOfType(result.Model, typeof(SerieIndexViewModel));
        }
        public async Task CallFilterSeriesAsync_WhenCalled()
        {
            // Arrange
            Mock <ISerieService> serieServiceMock = new Mock <ISerieService>();
            Mock <IPDFService>   pDFServiceMock   = new Mock <IPDFService>();
            Mock <IMemoryCache>  memoryCacheMock  = new Mock <IMemoryCache>();

            string validSortOrder  = string.Empty;
            string validFilter     = string.Empty;
            int    validPageNumber = 1;
            int    validPageSize   = 10;

            IPagedList <Serie> teams = new PagedList <Serie>(new List <Serie>().AsQueryable(), validPageNumber, validPageSize);

            serieServiceMock.Setup(mock => mock.FilterSeriesAsync(validSortOrder, validFilter, validPageNumber, validPageSize))
            .Returns(Task.FromResult(teams));

            SerieController SUT = new SerieController(
                serieServiceMock.Object,
                pDFServiceMock.Object,
                memoryCacheMock.Object);

            // Act
            await SUT.Filter(validSortOrder, validFilter, validPageNumber, validPageSize);

            // Assert
            serieServiceMock
            .Verify(mock => mock.FilterSeriesAsync(validSortOrder, validFilter, validPageNumber, validPageSize),
                    Times.Once);
        }
        public async Task CallFilterSeriesAsync_WhenCalled()
        {
            // Arrange
            Mock <ISerieService> serieServiceMock = new Mock <ISerieService>();
            Mock <IPDFService>   pDFServiceMock   = new Mock <IPDFService>();
            Mock <IMemoryCache>  memoryCacheMock  = new Mock <IMemoryCache>();

            IList <string> validFileParameters = typeof(SerieDownloadViewModel).GetProperties().Select(p => p.Name.ToString()).ToList();
            string         validCollection     = "series";

            string validSortOrder  = string.Empty;
            string validFilter     = string.Empty;
            int    validPageNumber = 1;
            int    validPageSize   = 10;

            string validFileName = string.Empty;

            byte[] validFileBytes = new byte[0];

            IPagedList <Serie> series = new PagedList <Serie>(
                new List <Serie>().AsQueryable(),
                validPageNumber,
                validPageSize);

            IPagedList <SerieDownloadViewModel> serieDownloadViewModels = new PagedList <SerieDownloadViewModel>(
                new List <SerieDownloadViewModel>().AsQueryable(),
                validPageNumber,
                validPageSize);

            serieServiceMock.Setup(mock => mock.FilterSeriesAsync(validSortOrder, validFilter, validPageNumber, validPageSize))
            .Returns(Task.FromResult(series));

            pDFServiceMock
            .Setup(mock => mock.CreatePDF(serieDownloadViewModels, validFileParameters, validCollection))
            .Returns(validFileName);

            pDFServiceMock
            .Setup(mock => mock.GetFileBytesAsync(validFileName))
            .Returns(Task.FromResult(validFileBytes));

            pDFServiceMock
            .Setup(mock => mock.DeleteFile(validFileName));

            SerieController SUT = new SerieController(
                serieServiceMock.Object,
                pDFServiceMock.Object,
                memoryCacheMock.Object);

            // Act
            await SUT.Download(validSortOrder, validFilter, validPageNumber, validPageSize);

            // Assert
            serieServiceMock.Verify(mock =>
                                    mock.FilterSeriesAsync(validSortOrder, validFilter, validPageNumber, validPageSize),
                                    Times.Once);
        }
Beispiel #11
0
        public void DeveExcluirSerie()
        {
            Serie serie = db.Series.Last();

            SerieController serieController = new SerieController(db);

            serieController.DeleteSerie(serie.Id).Wait();

            Assert.DoesNotContain(serie, db.Series);
        }
Beispiel #12
0
        public async System.Threading.Tasks.Task DeveExcluirExercicioAsync()
        {
            Serie           serie           = db.Series.FirstOrDefault();
            Exercicio       exercicio       = serie.Exercicios.FirstOrDefault();
            SerieController serieController = new SerieController(db);

            await serieController.ExcluirExercicio(serie.Id, exercicio.Id);

            Assert.Equal(0, serie.Exercicios.Count(e => e.Id == exercicio.Id));
        }
Beispiel #13
0
        public void DeveConcluirSerie()
        {
            Serie           serie           = db.Series.FirstOrDefault();
            SerieController serieController = new SerieController(db);
            int             conclusoesCount = serie.Conclusoes.Count();

            serieController.ConcluirSerie(serie.Id).Wait();
            Assert.Contains(serie.Conclusoes, c => c.DataHoraConclusao.ToShortDateString() == DateTime.Now.ToShortDateString());
            Assert.Equal(conclusoesCount + 1, serie.Conclusoes.Count());
        }
Beispiel #14
0
        public static void programRunner(SerieController pController)
        {
            var selectedOption = userOptions();

            while (selectedOption != "X")
            {
                programController(selectedOption, pController);

                selectedOption = userOptions();
            }
        }
Beispiel #15
0
        public void Get()
        {
            // Disponer
            SerieController controller = new SerieController();

            // Actuar
            DataSerie[] result = controller.Get();

            // Declarar
            Assert.IsNotNull(result);
            Assert.AreNotEqual(0, result.Count());
        }
Beispiel #16
0
        private void CargarDatosUpdate()
        {
            //Conseguir datos contenido
            contenido = ContenidoController.getContenido(id_contenido);

            Txt_Titulo.Text                    = contenido.Titulo;
            Txt_Descripcion.Text               = contenido.Descripcion;
            Txt_Calificacion.Text              = contenido.Calificacion.ToString();
            Txt_Horas_Inversion.Text           = contenido.Horas_inversion.ToString();
            ComboBox_Plataforma.SelectedIndex  = lista_plataformas.FindIndex(x => x.Id_plataforma == contenido.Id_plataforma);
            ComboBox_Progresion.SelectedIndex  = lista_progresion.FindIndex(x => x.Id_progresion == contenido.Id_progresion);
            ComboBox_Adquisicion.SelectedIndex = lista_adquisiciones.FindIndex(x => x.Id_adquisicion == contenido.Id_adquisicion);


            //Cargar Contenido Libro
            libro = LibroController.getLibro(contenido.Id_contenido);
            if (libro != null)
            {
                Txt_Libro_CantidadPaginas.Text = libro.Cantidad_paginas.ToString();
                Txt_Libro_PaginaActual.Text    = libro.Pagina.ToString();
                subtipo_cbo.SelectedIndex      = 0;
            }

            //Cargar Contenido Pelicula
            pelicula = PeliculaController.getPelicula(contenido.Id_contenido);
            if (pelicula != null)
            {
                Txt_Pelicula_Duracion.Text = pelicula.Duracion_minutos.ToString();
                Txt_Pelicula_Minuto.Text   = pelicula.Minuto.ToString();
                subtipo_cbo.SelectedIndex  = 1;
            }

            //Cargar Contenido Serie

            serie = SerieController.getSerie(contenido.Id_contenido);
            if (serie != null)
            {
                Txt_Tiempo_Capitulos.Text    = serie.Tiempo_capitulo.ToString();
                Txt_Capitulos_Temporada.Text = serie.Capitulos_temporada.ToString();
                Txt_Temporada.Text           = serie.Temporada.ToString();
                Txt_Capitulo.Text            = serie.Capitulo.ToString();
                Txt_MinutoSerie.Text         = serie.Minuto.ToString();
                subtipo_cbo.SelectedIndex    = 2;
            }

            //Cargar Contenido Juego
            juego = JuegoController.get(contenido.Id_contenido);
            if (juego != null)
            {
                subtipo_cbo.SelectedIndex = 3;
                JuegoPreparativos();
            }
        }
        public void btnExcluir_Click(object sender, RoutedEventArgs e)
        {
            SerieController excluirSerie = new SerieController();

            excluirSerie.Excluir(_ser.ID_Serie);


            MessageBox.Show("Usuario excluido com exito!");

            MainWindow main = new MainWindow();

            main.Show();
            this.Close();
        }
Beispiel #18
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                serieController = new SerieController();
                serie           = new Serie();
                //vamos haciendo la comprobación de los parametros y si estan vacios le asignamos lo correspondiente
                serie.Title       = txtTitle.Text.Trim();
                serie.NumTemp     = string.IsNullOrEmpty(txtTemp.Text.Trim()) ? 0 : int.Parse(txtTemp.Text);
                serie.IdGenre     = cmbGenres.SelectedItem == null ? -1 : getGenre(cmbGenres.SelectedItem.ToString());
                serie.Year        = string.IsNullOrEmpty(txtYear.Text.Trim()) ? 0 : int.Parse(txtYear.Text);
                serie.Rate        = string.IsNullOrEmpty(txtRate.Text.Trim()) ? 0 : int.Parse(txtRate.Text);
                serie.Description = txtDescription.Text.Trim();
                serie.PhotoPath   = photo == true?photoPath.ToString() : string.Empty;

                serie.IdUser = _user.IdUser;
                //comprobamos
                if (string.IsNullOrEmpty(serie.Title) || serie.NumTemp == 0 || serie.Year == 0 || serie.Rate == 0 || serie.IdGenre == -1 ||
                    string.IsNullOrEmpty(serie.Description))
                {
                    MessageBox.Show("Faltan campos por rellenar", "Error");
                }
                else
                {
                    //si todo va bien llamamos al metodo de agregar la serie
                    if (serieController.crearSerie(serie) != true)
                    {
                        MessageBox.Show("Ha ocurrido un error al añadir la serie", "Error");
                    }
                    else
                    {
                        //y reiniciamos campos y parametros
                        MessageBox.Show("Serie añadida", "Éxito");
                        txtTemp.Text        = "";
                        txtTitle.Text       = "";
                        txtRate.Text        = "";
                        cmbGenres.Text      = "Selecciona";
                        txtYear.Text        = "";
                        txtDescription.Text = "";
                        imgSerie.Image      = null;
                    }
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Campos Rellenados incorrectamente", "Error");
            }
        }
Beispiel #19
0
        public void DeveInserirSerie()
        {
            Serie serie = new Serie
            {
                Ativa      = true,
                Conclusoes = new List <Conclusao>(),
                Exercicios = new List <Exercicio>(),
                TipoSerie  = TipoSerie.A
            };

            SerieController serieController = new SerieController(db);

            serieController.PostSerie(serie).Wait();

            Assert.Contains(serie, db.Series);
        }
        private void btnAtualizar_Click(object sender, RoutedEventArgs e)
        {
            SerieController serieController = new SerieController();

            _ser.Nome     = txtNome.Text;
            _ser.Status   = txtStatus.Text;
            _ser.Tot_Ep   = txtTot_Ep.Text;
            _ser.Ep_Atual = txtEp_Atual.Text;
            _ser.Genero1  = txtGenero1.Text;
            _ser.Genero2  = txtGenero2.Text;
            _ser.Genero3  = txtGenero3.Text;
            _ser.Nota     = txtNota.Text;

            serieController.Atualizar(_ser);

            MessageBox.Show("Usuario editado com exito!");

            MainWindow main = new MainWindow();

            main.Show();
            this.Close();
        }
Beispiel #21
0
        public async System.Threading.Tasks.Task DeveInserirExericioAsync()
        {
            Serie     serie         = db.Series.FirstOrDefault();
            Exercicio novoExercicio = new Exercicio
            {
                Ativo         = true,
                Carga         = "teste",
                NomeExercicio = "Novo Exercício",
                Ordem         = 99,
                Repeticoes    = "Rep",
                SerieId       = serie.Id,
                Serie         = serie
            };

            SerieController serieController = new SerieController(db);
            await serieController.InserirExercicio(serie.Id, novoExercicio);

            Assert.Equal(novoExercicio.NomeExercicio, db.Exercicios.Last().NomeExercicio);
            Assert.Equal(novoExercicio.Carga, db.Exercicios.Last().Carga);
            Assert.Equal(novoExercicio.Ordem, db.Exercicios.Last().Ordem);
            Assert.Equal(novoExercicio.SerieId, db.Exercicios.Last().SerieId);
        }
Beispiel #22
0
        public async Task ThrowApplicationException_WhenPassedSerieIsNull()
        {
            // Arrange
            Mock <ISerieService> serieServiceMock = new Mock <ISerieService>();
            Mock <IPDFService>   pDFServiceMock   = new Mock <IPDFService>();
            Mock <IMemoryCache>  memoryCacheMock  = new Mock <IMemoryCache>();

            string validId = string.Empty;

            Serie invalidSerieResult = null;

            serieServiceMock.Setup(mock => mock.FindAsync(validId))
            .Returns(Task.FromResult(invalidSerieResult));

            SerieController SUT = new SerieController(
                serieServiceMock.Object,
                pDFServiceMock.Object,
                memoryCacheMock.Object);

            // Act & Assert
            await Assert.ThrowsExceptionAsync <ApplicationException>(() =>
                                                                     SUT.Details(validId));
        }
        private void Windows_Loaded(object sender, RoutedEventArgs e)
        {
            SerieController serieController = new SerieController();

            dgExSerie.ItemsSource = serieController.ListarTodos();
        }
Beispiel #24
0
        static void Main(string[] args)
        {
            var lController = new SerieController();

            Utility.programRunner(lController);
        }
Beispiel #25
0
        private void aceptar_editar_Click(object sender, RoutedEventArgs e)
        {
            int v; //Simplemente como utilidad para analisis de los imput numerico

            //Crear Contenido
            if (modo == Modo.create)
            {
                contenido = new Contenido();

                #region TextBox
                contenido.Titulo = Txt_Titulo.Text;
                if (contenido.Titulo == "")
                {
                    MessageBox.Show("Asigne un Titulo al Contenido", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }

                contenido.Descripcion = Txt_Descripcion.Text;

                if (!int.TryParse(Txt_Horas_Inversion.Text, out v))
                {
                    MessageBox.Show("Ingrese un valor entero en Horas Invertir", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }
                contenido.Horas_inversion = int.Parse(Txt_Horas_Inversion.Text);

                #endregion

                #region ComboBox
                if (ComboBox_Calificacion.SelectedIndex == -1)
                {
                    MessageBox.Show("Se debe seleccionar una Calificacion", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }
                contenido.Calificacion = ComboBox_Calificacion.SelectedIndex + 1;

                if (ComboBox_Plataforma.SelectedIndex != -1)
                {
                    contenido.Id_plataforma = lista_plataformas[ComboBox_Plataforma.SelectedIndex].Id_plataforma;
                }
                else
                {
                    MessageBox.Show("Se debe seleccionar una plataforma", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }

                if (ComboBox_Progresion.SelectedIndex != -1)
                {
                    contenido.Id_progresion = lista_progresion[ComboBox_Progresion.SelectedIndex].Id_progresion;
                }
                else
                {
                    MessageBox.Show("Se debe seleccionar una progresion", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }

                if (ComboBox_Adquisicion.SelectedIndex != -1)
                {
                    contenido.Id_adquisicion = lista_adquisiciones[ComboBox_Adquisicion.SelectedIndex].Id_adquisicion;
                }
                else
                {
                    MessageBox.Show("Se debe seleccionar una adquisicion", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }
                #endregion

                //Subtipos
                if (subtipo_cbo.SelectedIndex == -1)
                {
                    MessageBox.Show("Se debe seleccionar un subtipo");
                    return;
                }
                libro    = null;
                pelicula = null;
                serie    = null;
                juego    = null;

                #region Libro
                if (subtipo_cbo.SelectedIndex == 0)
                {
                    libro = new Libro();
                    if (!int.TryParse(Txt_Libro_CantidadPaginas.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Cantidad de Paginas", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    libro.Cantidad_paginas = int.Parse(Txt_Libro_CantidadPaginas.Text);

                    if (!int.TryParse(Txt_Libro_PaginaActual.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Pagina Actual", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    libro.Pagina = int.Parse(Txt_Libro_PaginaActual.Text);
                }
                #endregion

                #region Pelicula
                if (subtipo_cbo.SelectedIndex == 1)
                {
                    pelicula = new Pelicula();

                    if (!int.TryParse(Txt_Pelicula_Duracion.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Pelicula Duracion", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    pelicula.Duracion_minutos = int.Parse(Txt_Pelicula_Duracion.Text);

                    if (!int.TryParse(Txt_Pelicula_Minuto.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Pelicula Minuto", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    pelicula.Minuto = int.Parse(Txt_Pelicula_Minuto.Text);
                }
                #endregion

                #region Serie
                if (subtipo_cbo.SelectedIndex == 2)
                {
                    serie = new Serie();

                    if (!int.TryParse(Txt_Tiempo_Capitulos.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Serie, Tiempo Capitulos", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    serie.Tiempo_capitulo = int.Parse(Txt_Tiempo_Capitulos.Text);

                    if (!int.TryParse(Txt_Capitulos_Temporada.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Serie, Capitulos Temporada", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    serie.Capitulos_temporada = int.Parse(Txt_Capitulos_Temporada.Text);

                    if (!int.TryParse(Txt_Temporada.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Serie, Temporada", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    serie.Temporada = int.Parse(Txt_Temporada.Text);

                    if (!int.TryParse(Txt_Capitulo.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Serie, Capitulo", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    serie.Capitulo = int.Parse(Txt_Capitulo.Text);

                    if (!int.TryParse(Txt_MinutoSerie.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Serie, Minuto", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    serie.Minuto = int.Parse(Txt_MinutoSerie.Text);
                }
                #endregion

                #region Juego
                if (subtipo_cbo.SelectedIndex == 3)
                {
                    juego = new Juego();
                }
                #endregion

                #region Cargar contenido
                if (ContenidoController.insertContenido(contenido))
                {
                    //MessageBox.Show("Insercion de Contenido correcto");
                }
                else
                {
                    MessageBox.Show("Insercion de Contenido no ha funcionado correctamente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }

                int id_contenido = ContenidoController.LastID();

                bool correcto_subtipo = false;



                //Libro
                if (libro != null)
                {
                    libro.Id_contenido = id_contenido;
                    if (correcto_subtipo = LibroController.insertLibro(libro))
                    {
                        //MessageBox.Show("Ingresado correctamente Libro");
                    }
                    else
                    {
                        MessageBox.Show("Libro no se ha ingresado correctamente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }

                //Pelicula
                if (pelicula != null)
                {
                    pelicula.Id_contenido = id_contenido;
                    if (correcto_subtipo = PeliculaController.insertPelicula(pelicula))
                    {
                        //MessageBox.Show("Ingresado correctamente Pelicula");
                    }
                    else
                    {
                        MessageBox.Show("Pelicula no se ha ingresado correctamente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }

                //Serie
                if (serie != null)
                {
                    serie.Id_contenido = id_contenido;
                    if (correcto_subtipo = SerieController.insertSerie(serie))
                    {
                        //MessageBox.Show("Serie ingresada correctamente");
                    }
                    else
                    {
                        MessageBox.Show("Serie no se ha ingresado correctamente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }

                //Juego
                if (juego != null)
                {
                    juego.Id_contenido = id_contenido;
                    if (correcto_subtipo = JuegoController.insert(juego))
                    {
                        //MessageBox.Show("Ingresado correctamente Juego");
                        correcto_subtipo = NotasModificar(id_contenido);
                    }
                    else
                    {
                        MessageBox.Show("Juego no se ha ingresado correctamente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }

                if (!correcto_subtipo)
                {
                    if (ContenidoController.deleteContenido(id_contenido))
                    {
                        MessageBox.Show("Eliminacion de contenido de emergencia: Exitoso");
                    }
                    else
                    {
                        MessageBox.Show("Eliminacion de contenido de emergencia: Fallo", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                    return;
                }

                #endregion
            }

            //Modificar Contenido
            if (modo == Modo.update)
            {
                contenido = new Contenido();

                #region TextBox
                contenido.Id_contenido = id_contenido;
                contenido.Titulo       = Txt_Titulo.Text;

                if (contenido.Titulo == "")
                {
                    MessageBox.Show("Asigne un Titulo al Contenido", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }

                contenido.Descripcion = Txt_Descripcion.Text;
                //contenido.Calificacion = ComboBox_Calificacion.SelectedIndex + 1;

                if (!int.TryParse(Txt_Horas_Inversion.Text, out v))
                {
                    MessageBox.Show("Ingrese un valor entero en Horas Inversion", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }
                contenido.Horas_inversion = int.Parse(Txt_Horas_Inversion.Text);
                #endregion

                #region ComboBox
                if (ComboBox_Calificacion.SelectedIndex == -1)
                {
                    MessageBox.Show("Se debe seleccionar una Calificacion", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }
                contenido.Calificacion = ComboBox_Calificacion.SelectedIndex + 1;

                if (ComboBox_Plataforma.SelectedIndex != -1)
                {
                    contenido.Id_plataforma = lista_plataformas[ComboBox_Plataforma.SelectedIndex].Id_plataforma;
                }
                else
                {
                    MessageBox.Show("Se debe seleccionar una plataforma", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }

                if (ComboBox_Progresion.SelectedIndex != -1)
                {
                    contenido.Id_progresion = lista_progresion[ComboBox_Progresion.SelectedIndex].Id_progresion;
                }
                else
                {
                    MessageBox.Show("Se debe seleccionar una progresion", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }

                if (ComboBox_Adquisicion.SelectedIndex != -1)
                {
                    contenido.Id_adquisicion = lista_adquisiciones[ComboBox_Adquisicion.SelectedIndex].Id_adquisicion;
                }
                else
                {
                    MessageBox.Show("Se debe seleccionar una adquisicion", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }
                #endregion

                //Subtipos
                if (subtipo_cbo.SelectedIndex == -1)
                {
                    MessageBox.Show("Se debe seleccionar un subtipo");
                    return;
                }
                libro    = null;
                pelicula = null;
                serie    = null;
                juego    = null;
                bool correcto_subtipo = false;

                #region Libro
                if (subtipo_cbo.SelectedIndex == 0)
                {
                    libro = new Libro();
                    if (!int.TryParse(Txt_Libro_CantidadPaginas.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Cantidad de Paginas", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    libro.Cantidad_paginas = int.Parse(Txt_Libro_CantidadPaginas.Text);

                    if (!int.TryParse(Txt_Libro_PaginaActual.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Pagina Actual", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    libro.Pagina = int.Parse(Txt_Libro_PaginaActual.Text);
                }
                #endregion

                #region Pelicula
                if (subtipo_cbo.SelectedIndex == 1)
                {
                    pelicula = new Pelicula();

                    if (!int.TryParse(Txt_Pelicula_Duracion.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Pelicula Duracion", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    pelicula.Duracion_minutos = int.Parse(Txt_Pelicula_Duracion.Text);

                    if (!int.TryParse(Txt_Pelicula_Minuto.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Pelicula Minuto", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    pelicula.Minuto = int.Parse(Txt_Pelicula_Minuto.Text);
                }
                #endregion

                #region Serie
                if (subtipo_cbo.SelectedIndex == 2)
                {
                    serie = new Serie();

                    if (!int.TryParse(Txt_Tiempo_Capitulos.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Serie, Tiempo Capitulos", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    serie.Tiempo_capitulo = int.Parse(Txt_Tiempo_Capitulos.Text);

                    if (!int.TryParse(Txt_Capitulos_Temporada.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Serie, Capitulos Temporada", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    serie.Capitulos_temporada = int.Parse(Txt_Capitulos_Temporada.Text);

                    if (!int.TryParse(Txt_Temporada.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Serie, Temporada", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    serie.Temporada = int.Parse(Txt_Temporada.Text);

                    if (!int.TryParse(Txt_Capitulo.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Serie, Capitulo", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    serie.Capitulo = int.Parse(Txt_Capitulo.Text);

                    if (!int.TryParse(Txt_MinutoSerie.Text, out v))
                    {
                        MessageBox.Show("Ingrese un valor entero en Serie, Minuto", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    serie.Minuto = int.Parse(Txt_MinutoSerie.Text);
                }
                #endregion

                #region Juego
                if (subtipo_cbo.SelectedIndex == 3)
                {
                    juego = new Juego();
                }
                #endregion

                #region Cargar contenido
                if (ContenidoController.updateContenido(contenido))
                {
                    //MessageBox.Show("Actualizacion de Contenido correcto");
                }
                else
                {
                    MessageBox.Show("Actualizacion de Contenido no ha funcionado correctamente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }



                //Libro
                if (libro != null)
                {
                    PeliculaController.deletePelicula(id_contenido);
                    JuegoController.delete(id_contenido);
                    SerieController.deleteSerie(id_contenido);
                    //MessageBox.Show("Recordatorio: Falta eliminacion de tipo al cambiar tipo en libro");

                    libro.Id_contenido = id_contenido;
                    if (LibroController.existLibro(id_contenido))
                    {
                        if (correcto_subtipo = LibroController.updateLibro(libro))
                        {
                            //MessageBox.Show("actualizado correctamente Libro");
                        }
                        else
                        {
                            MessageBox.Show("Libro no se ha actualizado correctamente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                    else
                    {
                        if (correcto_subtipo = LibroController.insertLibro(libro))
                        {
                            //MessageBox.Show("Ingresado correctamente Libro");
                        }
                        else
                        {
                            MessageBox.Show("Libro no se ha ingresado correctamente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                }

                //Pelicula
                if (pelicula != null)
                {
                    LibroController.deleteLibro(id_contenido);
                    JuegoController.delete(id_contenido);
                    SerieController.deleteSerie(id_contenido);
                    //MessageBox.Show("Recordatorio: Falta eliminacion de tipo al cambiar tipo en pelicula");

                    pelicula.Id_contenido = id_contenido;
                    if (PeliculaController.existPelicula(id_contenido))
                    {
                        if (correcto_subtipo = PeliculaController.updatePelicula(pelicula))
                        {
                            //MessageBox.Show("Actualizado correctamente Pelicula");
                        }
                        else
                        {
                            MessageBox.Show("Pelicula no se ha actualizado correctamente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                    else
                    {
                        if (correcto_subtipo = PeliculaController.insertPelicula(pelicula))
                        {
                            //MessageBox.Show("Ingresado correctamente Pelicula");
                        }
                        else
                        {
                            MessageBox.Show("Pelicula no se ha ingresado correctamente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                }

                //Serie
                if (serie != null)
                {
                    LibroController.deleteLibro(id_contenido);
                    JuegoController.delete(id_contenido);
                    PeliculaController.deletePelicula(id_contenido);
                    //MessageBox.Show("Recordatorio: Falta eliminacion de tipo al cambiar tipo en serie");
                    serie.Id_contenido = id_contenido;

                    if (SerieController.existSerie(id_contenido))
                    {
                        if (correcto_subtipo = SerieController.updateSerie(serie))
                        {
                            //MessageBox.Show("Actualizado correctamente Serie");
                        }
                        else
                        {
                            MessageBox.Show("Serie no se ha actualizado correctamente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                    else
                    {
                        if (correcto_subtipo = SerieController.insertSerie(serie))
                        {
                            //MessageBox.Show("Ingresado correctamente Serie");
                        }
                        else
                        {
                            MessageBox.Show("Serie no se ha ingresado correctamente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                }

                //Juego
                if (juego != null)
                {
                    LibroController.deleteLibro(id_contenido);
                    PeliculaController.deletePelicula(id_contenido);
                    SerieController.deleteSerie(id_contenido);
                    //MessageBox.Show("Recordatorio: Falta eliminacion de tipo al cambiar tipo en juego");

                    juego.Id_contenido = id_contenido;
                    if (JuegoController.exist(id_contenido))
                    {
                        if (correcto_subtipo = JuegoController.update(id_contenido))
                        {
                            //MessageBox.Show("Actualizado correctamente Juego");
                        }
                        else
                        {
                            MessageBox.Show("Juego no se ha actualizado correctamente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        correcto_subtipo = NotasModificar(id_contenido);
                    }
                    else
                    {
                        if (correcto_subtipo = JuegoController.insert(juego))
                        {
                            //MessageBox.Show("Ingresado correctamente Juego");
                        }
                        else
                        {
                            MessageBox.Show("Juego no se ha ingresado correctamente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                }

                if (!correcto_subtipo)
                {
                    if (ContenidoController.deleteContenido(id_contenido))
                    {
                        MessageBox.Show("Eliminacion de contenido de emergencia: Exitoso", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                    else
                    {
                        MessageBox.Show("Eliminacion de contenido de emergencia: Fallo", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                    return;
                }

                #endregion
            }

            CerrarVentana();
        }