示例#1
0
        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());
        }
示例#2
0
        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"));
            }
        }
示例#3
0
        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
        }