public async Task <List <Col_Materias> > MostrarMarterias(int?cursoId) { List <Col_Materias> materias = new List <Col_Materias>(); if (cursoId == null) { materias = await context.Col_Materias.ToListAsync(); } else { var _materias = await context.Col_Materias .Join(context.Col_Horarios, m => m.MateriaId, h => h.MateriaId, (m, h) => new { Col_Materias = m, Col_Horarios = h }) .Where(w => w.Col_Horarios.CursoId == cursoId) .Select(s => new Col_Materias { MateriaId = s.Col_Materias.MateriaId, Nombre = s.Col_Materias.Nombre }).ToListAsync(); foreach (var item in _materias.GroupBy(g => g.MateriaId)) { Col_Materias _materia = new Col_Materias(); _materia.MateriaId = item.Select(s => s.MateriaId).FirstOrDefault(); _materia.Nombre = item.Select(s => s.Nombre).FirstOrDefault(); materias.Add(_materia); } } return(materias.OrderBy(o => o.Nombre).ToList()); }
public async Task <IActionResult> GuardarMarterias(string materia) { if (User.Identity.IsAuthenticated) { string permiso = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo"; bool crear = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Crear")).Any(); if (crear) { dynamic materiaJson = JsonConvert.DeserializeObject(materia); Col_Materias _materia = new Col_Materias(); _materia.Codigo = materiaJson.Codigo; _materia.Nombre = materiaJson.Nombre; _materia.Color = materiaJson.Color; _materia.Descripcion = materiaJson.Descripcion; ApiCallResult result = await service.GuardarMaterias(_materia); return(Json(result)); } else { return(NotFound()); } } else { return(RedirectToAction("Index", "Login")); } }
public async Task <ApiCallResult> GuardarMaterias(Col_Materias materia) { try { int?maxId = await context.Col_Materias.MaxAsync(m => (int?)m.MateriaId); int?id = maxId == null ? 1 : maxId + 1; materia.MateriaId = Convert.ToInt32(id); materia.FechaCreacion = DateTime.Now; await context.AddAsync <Col_Materias>(materia); await context.SaveChangesAsync(); return(new ApiCallResult { Status = true, Title = "Éxito", Message = $"La materia {materia.Nombre} - {materia.Codigo} se ha guardado con éxito" }); } #region catch catch (DbEntityValidationException e) { string err = ""; foreach (DbEntityValidationResult eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (DbValidationError ve in eve.ValidationErrors) { err += ve.ErrorMessage; Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } return(new ApiCallResult { Status = false, Title = "Error al eliminar", Message = "Favor contacte éste con el administrador" }); } catch (Exception e) { string err = ""; if (e.InnerException != null) { if (e.InnerException.Message != null) { err = (e.InnerException.Message); if (e.InnerException.InnerException != null) { err += e.InnerException.InnerException.Message; } } } else { err = (e.Message); } return(new ApiCallResult { Status = false, Title = "Error al eliminar", Message = "Favor contacte éste con el administrador" }); } #endregion }