public async Task <ApiCallResult> EliminarHoriorMateria(int horarioId) { try { Col_Horarios horario = await context.Col_Horarios.Where(w => w.HorarioId.Equals(horarioId)).FirstOrDefaultAsync(); context.Col_Horarios.Remove(horario); await context.SaveChangesAsync(); return(new ApiCallResult { Status = true, Title = "Éxito", Message = $"Se ha eliminado con éxito la materia de ese horario" }); } #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 }
public async Task <IActionResult> AgregarMateriasHorario(string horario) { 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 horarioJson = JsonConvert.DeserializeObject(horario); Col_Horarios _horario = new Col_Horarios(); _horario.MateriaId = horarioJson.MateriaId; _horario.CursoId = horarioJson.CursoId; _horario.HoraIni = horarioJson.HoraIni; _horario.HoraFin = horarioJson.HoraFin; ApiCallResult result = await service.AgregarMateriasHorario(_horario); return(Json(result)); } else { return(NotFound()); } } else { return(RedirectToAction("Index", "Login")); } }
public async Task <List <Col_Horarios> > MostrarDiasSemana(int materiaId, int cursoId) { try { var diasSemana = Diccionarios.MostrarDias(); var _dias = await(from t0 in context.Col_Materias join t1 in context.Col_Horarios on t0.MateriaId equals t1.MateriaId join t2 in context.Col_Cursos on t1.CursoId equals t2.CursoId where t2.CursoId == cursoId && t0.MateriaId == materiaId select new Col_Horarios { HorarioId = t1.HorarioId, HoraIni = t1.HoraIni, }).ToListAsync(); List <Col_Horarios> dias = new List <Col_Horarios>(); foreach (var item in _dias.GroupBy(g => g.HoraIni.Substring(0, 1))) { Col_Horarios dia = new Col_Horarios(); dia.HorarioId = item.Select(s => s.HorarioId).FirstOrDefault(); dia.Dia = diasSemana.Where(w => w.Key.StartsWith(item.Select(s => s.HoraIni.Substring(0, 1)).FirstOrDefault())) .Select(s => s.Value).FirstOrDefault(); dias.Add(dia); } return(dias.OrderBy(o => o.Dia).ToList()); } #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(null); } 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(null); } #endregion }
public async Task <ApiCallResult> AgregarMateriasHorario(Col_Horarios _horario) { try { List <Horarios> horarioMaterias = await MostrarHorasMaterias(_horario.CursoId); bool agregar = horarioMaterias .Where(w => w.Intervalo.Contains(_horario.HoraIni) || w.HoraIni.Equals(_horario.HoraIni) || w.Intervalo.Contains(_horario.HoraFin)).Any(); if (!agregar) { int menor = _horario.HoraIni.Contains("10") || _horario.HoraIni.Contains("11") || (_horario.HoraIni.Contains("PM") && _horario.HoraIni.Contains("12")) ? Convert.ToInt32(_horario.HoraIni.Substring(2, 2) + _horario.HoraIni.Substring(5, 2)) : _horario.HoraIni.Contains("PM") && !_horario.HoraIni.Contains("12") ? Convert.ToInt32((Convert.ToInt32(_horario.HoraIni.Substring(2, 1)) + 12).ToString() + _horario.HoraIni.Substring(4, 2)) : Convert.ToInt32(_horario.HoraIni.Substring(2, 1) + _horario.HoraIni.Substring(4, 2)); int mayor = _horario.HoraFin.Contains("10") || _horario.HoraFin.Contains("11") || (_horario.HoraFin.Contains("PM") && _horario.HoraFin.Contains("12")) ? Convert.ToInt32(_horario.HoraFin.Substring(2, 2) + _horario.HoraFin.Substring(5, 2)) : _horario.HoraFin.Contains("PM") && !_horario.HoraFin.Contains("12") ? Convert.ToInt32((Convert.ToInt32(_horario.HoraFin.Substring(2, 1)) + 12).ToString() + _horario.HoraFin.Substring(4, 2)) : Convert.ToInt32(_horario.HoraFin.Substring(2, 1) + _horario.HoraFin.Substring(4, 2)); int i = 0; List <List <string> > rangos = horarioMaterias .Where(w => w.HoraIni.Contains(_horario.HoraIni.Substring(0, 1))) .Select(s => s.Intervalo).ToList(); foreach (List <string> _rango in rangos) { int j = 0; foreach (var item in _rango) { int numero = item.Contains("10") || item.Contains("11") || (item.Contains("PM") && item.Contains("12")) ? Convert.ToInt32(item.Substring(2, 2) + item.Substring(5, 2)) : item.Contains("PM") && !item.Contains("12") ? Convert.ToInt32(((Convert.ToInt32(item.Substring(2, 1)) + 12).ToString() + item.Substring(4, 2))) : Convert.ToInt32(item.Substring(2, 1) + item.Substring(4, 2)); bool pregunta = menor <= numero && numero <= mayor; if (pregunta) { return(new ApiCallResult { Status = false, Title = "Error", Message = $"Solo puede insertar una mateteria en estas horas" }); } j++; } i++; } int?maxId = await context.Col_Horarios.MaxAsync(m => (int?)m.HorarioId); int?id = maxId == null ? 1 : maxId + 1; _horario.HorarioId = Convert.ToInt32(id); await context.AddAsync <Col_Horarios>(_horario); await context.SaveChangesAsync(); return(new ApiCallResult { Status = true, Title = "Éxito", Message = $"Se agregó una hora de materia al horario con éxito" }); } else { return(new ApiCallResult { Status = false, Title = "Error", Message = $"Solo puede insertar una mateteria en estas horas" }); } } #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 }