public IActionResult Add()
        {
            var viewModel  = new AddActaEUViewModel();
            var categorias = _categorias.GetAllWithSubCategorias();

            viewModel.CarrerasExistentes = _carreras.GetAll().Select(x => new DropDownViewModel <int>()
            {
                Text  = $"{x.Abreviatura} - {x.Nombre}",
                Value = x.Id
            }).ToList();
            foreach (var categoria in categorias)
            {
                var categoriaTemp = AutoMapper.Mapper.Map <AddActaEUCategoriaViewModel>(categoria);

                foreach (var subCategoria in categoria.SubCategorias.Where(x => x.Active))
                {
                    var detalle = AutoMapper.Mapper.Map <AddActaEUDetalleViewModel>(subCategoria);
                    categoriaTemp.Detalle.Add(detalle);
                }
                //si la categoria no tiene subcategorias se le agrega esa categoria como subcategoria para mostrar en la vista
                if (categoria.SubCategorias.Count == 0)
                {
                    var subCat = new AddActaEUDetalleViewModel()
                    {
                        Nombre   = categoria.Nombre,
                        Caracter = categoria.Caracter,
                    };
                    categoriaTemp.Detalle.Add(subCat);
                }
                viewModel.Categorias.Add(categoriaTemp);
            }
            return(View(viewModel));
        }
        public IActionResult View(int id)
        {
            var viewModel  = new ViewActaEUViewModel();
            var acta       = _actasEU.GetById(id);
            var categorias = _categorias.GetAllWithSubCategorias();

            viewModel.CarrerasExistentes = _carreras.GetAll().Select(x => new DropDownViewModel <int>()
            {
                Text  = $"{x.Abreviatura} - {x.Nombre}",
                Value = x.Id
            }).ToList();
            viewModel = Mapper.Map(acta, viewModel);
            foreach (var categoria in categorias)
            {
                var categoriaTemp = Mapper.Map <AddActaEUCategoriaViewModel>(categoria);

                foreach (var subCategoria in categoria.SubCategorias.Where(x => x.Active))
                {
                    var detalle      = Mapper.Map <AddActaEUDetalleViewModel>(subCategoria);
                    var savedDetalle = acta.ActaEUDetalle.FirstOrDefault(x => x.SubCategoriaId == subCategoria.Id);
                    if (savedDetalle != null)
                    {
                        detalle = Mapper.Map(savedDetalle, detalle);
                    }
                    categoriaTemp.Detalle.Add(detalle);
                }
                //si la categoria no tiene subcategorias se le agrega esa categoria como subcategoria para mostrar en la vista
                if (categoria.SubCategorias.Count == 0)
                {
                    var subCat = new AddActaEUDetalleViewModel()
                    {
                        Nombre   = categoria.Nombre,
                        Caracter = categoria.Caracter,
                    };
                    var savedDetalle = acta.ActaEUDetalle.FirstOrDefault(x => x.CategoriaId == categoria.Id);
                    if (savedDetalle != null)
                    {
                        subCat = Mapper.Map(savedDetalle, subCat);
                    }
                    categoriaTemp.Detalle.Add(subCat);
                }

                viewModel.Categorias.Add(categoriaTemp);
            }


            return(View(viewModel));
        }