Beispiel #1
0
        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
        }
Beispiel #2
0
        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"));
            }
        }
Beispiel #3
0
        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
        }
Beispiel #4
0
        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
        }