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)); }