Esempio n. 1
0
        public string eliminarBloquePlan(int pBloqueXPlanID)
        {
            var vBloques = (from BloquesXPlanXCursos in gvDatabase.BlocksXPlansXCourses
                            where BloquesXPlanXCursos.BlockXPlanID == pBloqueXPlanID
                            select BloquesXPlanXCursos);

            if (vBloques != null)
            {
                foreach (var vBloque in vBloques)
                {
                    var CursosAsignados = from Grupos in gvDatabase.Groups
                                          where Grupos.BlockXPlanXCourseID == vBloque.ID
                                          select Grupos;
                    if (CursosAsignados.Any())
                    {
                        return("Debe eliminar los grupos de este curso");
                    }
                    gvDatabase.BlocksXPlansXCourses.Remove(vBloque);
                }
                var vBloquePlan = gvDatabase.AcademicBlocksXStudyPlans.SingleOrDefault(bloquePlan => bloquePlan.ID == pBloqueXPlanID);
                gvDatabase.AcademicBlocksXStudyPlans.Remove(vBloquePlan);
                gvDatabase.SaveChanges();
            }
            else
            {
                return("El registro ha sido borrado correctamente.");
            }
            return("El registro no ha sido borrado.");
            //throw new Exception("Se ha producido un error, no se ha encontrado referencia del registro seleccionado. Por Favor comuniquese con un administrador.");
        }
        public ActionResult Create([Bind(Include = "ID,SedeID,Code,Capacity,Active")] Classroom aula)
        {
            if (ModelState.IsValid)
            {
                if (aula.Code == null)
                {
                    TempData[TempDataMessageKey] = "Ingrese un Código Válido";
                    ViewBag.SedeID = new SelectList(db.Sedes, "ID", "Name", aula.SedeID);
                    return(View(aula));
                }
                if (db.Classrooms.Where(p => p.Code == aula.Code).Count() > 0)
                {
                    TempData[TempDataMessageKey] = "Esta sede ya cuenta con un aula con el código provisto. Por Favor intente de nuevo.";
                    ViewBag.SedeID = new SelectList(db.Sedes, "ID", "Name", aula.SedeID);
                    return(View(aula));
                }

                aula.SedeID = Convert.ToInt32(Request.Form["Sedes"].ToString());
                aula.Active = true;
                db.Classrooms.Add(aula);
                db.SaveChanges();
                TempData[TempDataMessageKeySuccess] = "El aula ha sido creada exitosamente";
                return(RedirectToAction("Index"));
            }

            ViewBag.SedeID = new SelectList(db.Sedes, "ID", "Name", aula.SedeID);
            return(View(aula));
        }
        public ActionResult Create([Bind(Include = "ID,Name,Code,TheoreticalHours,Block,External,PracticeHours,Credits")] Course curso, int HorasPracticas, int HorasTeoricas, int Bloque)
        {
            if (ModelState.IsValid)
            {
                curso.PracticeHours    = HorasPracticas;
                curso.TheoreticalHours = HorasTeoricas;
                curso.Block            = Bloque;
                db.Courses.Add(curso);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(curso));
        }
Esempio n. 4
0
        public ActionResult Create([Bind(Include = "ID,Name")] Sede sede)
        {
            if (ModelState.IsValid)
            {
                if (db.Sedes.Where(p => p.Name == sede.Name).Count() > 0)
                {
                    TempData[TempDataMessageKey] = "Ya existe una sede con el nombre: " + sede.Name;
                }

                db.Sedes.Add(sede);
                db.SaveChanges();

                TempData[TempDataMessageKeySuccess] = "Sede creada correctamente.";
                return(RedirectToAction("Index"));
            }

            return(View(sede));
        }
Esempio n. 5
0
        public ActionResult Create([Bind(Include = "ID,Description,Level")] AcademicBlock bloqueAcademico)
        {
            if (ModelState.IsValid)
            {
                if (db.AcademicBlocks.Where(p => p.Description == bloqueAcademico.Description).Count() > 0)
                {
                    TempData[TempDataMessageKey] = "Ya existe un bloque académico con el nombre: " + bloqueAcademico.Description;
                }

                db.AcademicBlocks.Add(bloqueAcademico);
                db.SaveChanges();

                TempData[TempDataMessageKeySuccess] = "Bloque académico creada correctamente.";
                return(RedirectToAction("Index"));
            }

            return(View(bloqueAcademico));
        }
Esempio n. 6
0
 public void crearRelacionBloqueXPlan(AcademicBlockXStudyPlan pBloqueXPlan)
 {
     if (existeRelacionBloqueXPlan(pBloqueXPlan.PlanID, pBloqueXPlan.BlockID))
     {
         return;
     }
     else
     {
         gvDatabase.AcademicBlocksXStudyPlans.Add(pBloqueXPlan);
         gvDatabase.SaveChanges();
     }
 }
        public ActionResult Create([Bind(Include = "ID,Name,Start,End,StateID,EntityTypeID")] Commission commission)
        {
            String entidad = Request.Cookies["Entidad"].Value;
            int    entidadID;

            if (entidad.Equals("TEC"))
            {
                entidadID = 1;
            }
            else if (entidad.Equals("CIE"))
            {
                entidadID = 7;
            }
            else if (entidad.Equals("TAE"))
            {
                entidadID = 5;
            }
            else if (entidad.Equals("MAE"))
            {
                entidadID = 6;
            }
            else if (entidad.Equals("DDE"))
            {
                entidadID = 11;
            }
            else if (entidad.Equals("Emprendedores"))
            {
                entidadID = 12;
            }
            else if (entidad.Equals("Actualizacion_Cartago"))
            {
                entidadID = 9;
            }
            else
            {
                entidadID = 8;
            }

            if (string.IsNullOrEmpty(commission.Name.Trim()))
            {
                throw new ArgumentException("El nombre de la comisión no es válida. Por favor, inténtelo de nuevo");
            }


            if (ModelState.IsValid)
            {
                commission.EntityTypeID = entidadID;
                commission.StateID      = 1;
                db.Commissions.Add(commission);
                db.SaveChanges();
                TempData[TempDataMessageKeySuccess] = "Comisión creada correctamente.";
                return(RedirectToAction("Index"));
            }

            ViewBag.EntityTypeID = new SelectList(db.EntityTypes, "ID", "Name", commission.EntityTypeID);
            ViewBag.StateID      = new SelectList(db.States, "ID", "Name", commission.StateID);
            return(View(commission));
        }
Esempio n. 8
0
        public ActionResult Create([Bind(Include = "ID,Name,Start,End,StateID,Link,EntityTypeID")] Project project)
        {
            String entidad = Request.Cookies["Entidad"].Value;
            int    entidadID;

            if (entidad.Equals("TEC"))
            {
                entidadID = 1;
            }
            else if (entidad.Equals("CIE"))
            {
                entidadID = 7;
            }
            else if (entidad.Equals("TAE"))
            {
                entidadID = 5;
            }
            else if (entidad.Equals("MAE"))
            {
                entidadID = 6;
            }
            else if (entidad.Equals("DDE"))
            {
                entidadID = 11;
            }
            else if (entidad.Equals("Emprendedores"))
            {
                entidadID = 12;
            }
            else if (entidad.Equals("Actualizacion_Cartago"))
            {
                entidadID = 9;
            }
            else
            {
                entidadID = 8;
            }


            if (ModelState.IsValid)
            {
                Project proyectoNuevo = new Project()
                {
                    Name         = project.Name,
                    Start        = project.Start,
                    End          = project.End,
                    EntityTypeID = entidadID,
                    Link         = project.Link,
                    StateID      = 1
                };
                db.Projects.Add(proyectoNuevo);
                db.SaveChanges();
                TempData[TempDataMessageKeySuccess] = "Proyecto creado correctamente.";
                return(RedirectToAction("Index"));
            }

            return(RedirectToAction("Create"));
        }
        public ActionResult ResolveCommissions(AlertViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                for (int i = 0; i < viewModel.Commissions.Count; i++)
                {
                    var commission = db.Commissions.Find(viewModel.Commissions[i].ID);
                    db.Entry(commission).Property(c => c.StateID).CurrentValue = 2;
                    db.SaveChanges();

                    if (commission.CommissionsXProfessors.Count > 0)
                    {
                        var commissionProfessors = commission.CommissionsXProfessors.ToList();
                        foreach (var commissionProfessor in commissionProfessors)
                        {
                            db.CommissionsXProfessors.Remove(commissionProfessor);
                            db.SaveChanges();
                        }
                    }
                }
            }
            return(RedirectToAction("Index"));
        }
        public void crearRelacionBloqueXPlanXCurso(int pCourseID, int pBlockXPlanID)
        {
            BlockXPlanXCourse vBlockXPlanXCourse = new BlockXPlanXCourse();

            vBlockXPlanXCourse.CourseID     = pCourseID;
            vBlockXPlanXCourse.BlockXPlanID = pBlockXPlanID;
            List <StudyPlanXSede> vPlanXSedeList = getPlanXSede(getPlanID(pBlockXPlanID));

            vPlanXSedeList.ForEach(PlanXSede => vBlockXPlanXCourse.SedeID = PlanXSede.SedeID);

            for (int vElement = 0; vElement < vPlanXSedeList.Count(); vElement++)
            {
                if (!existeRelacionBloqueXPlanXCurso(pBlockXPlanID, pCourseID))
                {
                    vBlockXPlanXCourse.SedeID = vPlanXSedeList.ElementAt(vElement).SedeID;
                    gvDatabase.BlocksXPlansXCourses.Add(vBlockXPlanXCourse);
                }
            }
            gvDatabase.SaveChanges();
        }
        public ActionResult Create(PlazaCreateViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var vPlaza = new Plaza()
                {
                    Code          = viewModel.Code,
                    PlazaType     = viewModel.PlazaType,
                    TimeType      = viewModel.TimeType,
                    TotalHours    = viewModel.TotalHours,
                    EffectiveTime = viewModel.EffectiveTime
                };

                db.Plazas.Add(vPlaza);
                db.SaveChanges();

                TempData[TempDataMessageKeySuccess] = "Plaza creada exitosamente";
                return(RedirectToAction("Index"));
            }

            return(View(viewModel));
        }
        public ActionResult Asignar(ScheduleProjectViewModel pSchedule)
        {
            var vPeriod   = Request.Cookies["Periodo"].Value;
            var vPeriodID = db.Periods.Find(int.Parse(vPeriod)).ID;

            string vHourCharge  = pSchedule.HourCharge;
            int    vProjectID   = Convert.ToInt32(pSchedule.Projects);
            int    vProfessorID = Convert.ToInt32(pSchedule.Professors);
            List <ScheduleProject> vSchedules = pSchedule.ScheduleProject;

            string validate = scheduleHelper.validationProject(vProjectID, vProfessorID, vPeriodID, vSchedules);

            if (validate.Equals("true"))
            {
                int totalHourAssign = 0;

                //Save Commission Professor
                ProjectXProfessor vProjectProfessor = new ProjectXProfessor();
                vProjectProfessor.ProjectID   = Convert.ToInt32(vProjectID);
                vProjectProfessor.ProfessorID = Convert.ToInt32(vProfessorID);
                if (vHourCharge.Equals("1"))
                {
                    vProjectProfessor.HourAllocatedTypeID = Convert.ToInt32(vHourCharge);
                }
                vProjectProfessor.PeriodID = vPeriodID;
                vProjectProfessor.Schedule = new List <Schedule>();

                //Calculate the total hour assign
                foreach (ScheduleProject vSchedule in vSchedules)
                {
                    Schedule vTempSchedule = existSchedule(vSchedule.Day, vSchedule.StartHour, vSchedule.EndHour);
                    if (vTempSchedule != null)
                    {
                        //Get id schedule

                        vTempSchedule.ProjectsXProfessors.Add(vProjectProfessor);
                    }

                    //Convert StartHour to DateTime
                    var HoraInicio = DateTime.Parse(vSchedule.StartHour);
                    //Convert EndHour to DateTime
                    var HoraFin = DateTime.Parse(vSchedule.EndHour);

                    //Get the difference between StartHour and EndHour
                    var vSTRDiff = Math.Ceiling(HoraFin.Subtract(HoraInicio).TotalHours);


                    int vDiferencia = Convert.ToInt32(vSTRDiff);

                    totalHourAssign = totalHourAssign + vDiferencia;
                }


                vProjectProfessor.Hours = totalHourAssign;

                db.ProjectsXProfessors.Add(vProjectProfessor);

                db.SaveChanges();
                TempData[TempDataMessageKeySuccess] = "Profesor asignado correctamente.";

                return(RedirectToAction("Asignar"));
            }
            else if (validate.Equals("falseIsGroupShock"))
            {
                TempData[TempDataMessageKeyError] = "Existe choque de horario con grupos, no se asigno al profesor al proyecto";
                return(RedirectToAction("Asignar"));
            }
            else if (validate.Equals("falseIsProjectShock"))
            {
                TempData[TempDataMessageKeyError] = "Existe choque de horario con proyectos, no se asigno al profesor al proyecto";
                return(RedirectToAction("Asignar"));
            }
            else if (validate.Equals("falseIsCommissionShock"))
            {
                TempData[TempDataMessageKeyError] = "Existe choque de horario con comisiones, no se asigno al profesor al proyecto";
                return(RedirectToAction("Asignar"));
            }
            else if (validate.Equals("falseIsProfessorShock"))
            {
                TempData[TempDataMessageKeyError] = "El profesor ya esta asignado a este proyecto, no se permite asignar dos veces a un profesor a un proyecto ";
                return(RedirectToAction("Asignar"));
            }
            return(View());
        }
 public void agregarGrupo(Group pGrupo)
 {
     gvDatabase.Groups.Add(pGrupo);
     gvDatabase.SaveChanges();
 }
        public ActionResult Horarios(NewScheduleViewModel pNewSchedule)
        {
            //*****************************************************************************************************
            //******************************* Se obtienen los datos del formulario ********************************
            //*****************************************************************************************************
            int vGroupID = Convert.ToInt32(pNewSchedule.Group);

            // 1 Find the group in the database
            Group vGroup = db.Groups.Find(vGroupID);

            // 2 Remove GroupClassroom fields asociated with the Group
            removeGroupClassroomByGroupID(vGroupID);

            // 3 new GroupClassrooms asociated with Group
            //Get the list of schedules and classrooms from the View
            List <NewSchedule> vNewSchedule = pNewSchedule.NewSchedule;

            bool vIsValidateClassroom = true;// = isInternScheduleValid(vNewSchedule);

            foreach (NewSchedule tempSchedule in vNewSchedule)
            {
                Schedule vTempSchedule = existSchedule(tempSchedule.Day, tempSchedule.StartHour, tempSchedule.EndHour);
                int      vClassroomID  = Convert.ToInt32(tempSchedule.Classroom);

                if (isValidScheduleClassroom(vTempSchedule, vClassroomID, vGroupID))
                {
                    GroupClassroom vNewGroupClassroom = new GroupClassroom();

                    vNewGroupClassroom.ClassroomID = Convert.ToInt32(tempSchedule.Classroom);

                    vNewGroupClassroom.ScheduleID = vTempSchedule.ID;

                    vNewGroupClassroom.GroupID = vGroup.ID;

                    vGroup.GroupsClassroom.Add(vNewGroupClassroom);
                }
                else
                {
                    vIsValidateClassroom = false;
                }
            }
            if (vIsValidateClassroom)
            {
                if (vGroup.ProfessorID != null)
                {
                    var            vProfessorID = (int)vGroup.ProfessorID;
                    var            vPeriod      = Request.Cookies["Periodo"].Value;
                    var            vPeriodID    = db.Periods.Find(int.Parse(vPeriod)).ID;
                    ScheduleHelper dbHelper     = new ScheduleHelper();

                    string validate = dbHelper.validationsEditGroup(vProfessorID, vGroupID, vPeriodID);

                    if (validate.Equals("true"))
                    {
                        db.SaveChanges();

                        TempData[TempDataMessageKeySuccess] = "Cambios guardados satisfactoriamente";
                        return(RedirectToAction("Index"));
                    }
                    // Exist problems in profesor schedule, so the assign is cancelled and the user recive the information of the problem
                    else if (validate.Equals("falseIsGroupShock"))
                    {
                        TempData[TempDataMessageKeyError] = "Existe choque de horario con el profesor asignado al grupo, no se realizaron los cambios";
                        return(RedirectToAction("Index"));
                    }
                    else if (validate.Equals("falseIsProjectShock"))
                    {
                        TempData[TempDataMessageKeyError] = "Existe choque de horario con el profesor asignado al grupo, no se realizaron los cambios";
                        return(RedirectToAction("Index"));
                    }

                    else if (validate.Equals("falseIsCommissionShock"))
                    {
                        TempData[TempDataMessageKeyError] = "Existe choque de horario con el profesor asignado al grupo, no se realizaron los cambios";
                        return(RedirectToAction("Index"));
                    }
                }
                else
                {
                    db.SaveChanges();

                    TempData[TempDataMessageKeySuccess] = "Cambios guardados satisfactoriamente";
                    return(RedirectToAction("Index"));
                }
            }
            else
            {
                TempData[TempDataMessageKeyError] = "Existe choque de horario con la asignacion del aula";
                return(RedirectToAction("Index"));
            }

            return(RedirectToAction("Index"));
        }
Esempio n. 15
0
 public void AddPeriod(Period pPeriod)
 {
     gvDatabase.Periods.Add(pPeriod);
     gvDatabase.SaveChanges();
 }
        public ActionResult Asignar(int sltCurso, int sltProfesor, int sltGrupo, int HourCharge, String txtHorasEstimadas)
        {
            var vPeriod         = Request.Cookies["Periodo"].Value;
            var vPeriodID       = db.Periods.Find(int.Parse(vPeriod)).ID;
            int vEstimatedHours = Convert.ToInt32(txtHorasEstimadas);

            if (ModelState.IsValid)
            {
                //Verify if profesor have other assign in the same day and start hour, if don't have conflict with other group in the same hour and day return true, else
                //if found problem with other group in the same day and start hour return false and the assign is cancelled and the user receive information
                string validate = scheduleHelper.validations(sltProfesor, sltGrupo, vPeriodID);

                //If doesn't exist problems in the profesor schedule
                if (validate.Equals("true"))
                {
                    var grupo = db.Groups.Find(sltGrupo);
                    grupo.ProfessorID = sltProfesor;

                    if (HourCharge == 1)
                    {
                        grupo.HourAllocatedTypeID = 1;
                    }
                    grupo.EstimatedHour = vEstimatedHours;
                    db.SaveChanges();

                    TempData[TempDataMessageKeySuccess] = "Profesor asignado correctamente";
                    return(RedirectToAction("Asignar"));
                }
                // Exist problems in profesor schedule, so the assign is cancelled and the user recive the information of the problem
                else if (validate.Equals("falseIsGroupShock"))
                {
                    TempData[TempDataMessageKeyError] = "Existe choque de horario con grupos, no se asigno al profesor al curso";
                    /* get List of all teachers */
                    ViewBag.Profesores = obtenerTodosProfesores().ToList();
                    /*get List of all 'sedes' */
                    ViewBag.Sedes = obtenerTodasSedes().ToList();
                    /* get List of all 'modalidades' */
                    ViewBag.Modalidades = obtenerTodasModalidades().ToList <Modality>();
                    return(View());
                }
                else if (validate.Equals("falseIsProjectShock"))
                {
                    TempData[TempDataMessageKeyError] = "Existe choque de horario con proyectos, no se asigno al profesor al curso";
                    /* get List of all teachers */
                    ViewBag.Profesores = obtenerTodosProfesores().ToList();
                    /*get List of all 'sedes' */
                    ViewBag.Sedes = obtenerTodasSedes().ToList();
                    /* get List of all 'modalidades' */
                    ViewBag.Modalidades = obtenerTodasModalidades().ToList <Modality>();
                    return(View());
                }

                else if (validate.Equals("falseIsCommissionShock"))
                {
                    TempData[TempDataMessageKeyError] = "Existe choque de horario con comisiones, no se asigno el profesor al curso";
                    /* get List of all teachers */
                    ViewBag.Profesores = obtenerTodosProfesores().ToList();
                    /*get List of all 'sedes' */
                    ViewBag.Sedes = obtenerTodasSedes().ToList();
                    /* get List of all 'modalidades' */
                    ViewBag.Modalidades = obtenerTodasModalidades().ToList <Modality>();
                    return(View());
                }
            }
            return(View());
        }
Esempio n. 17
0
 public void AddGroupClassroom(GroupClassroom pGroupClassroom)
 {
     gvDatabase.GroupClassrooms.Add(pGroupClassroom);
     gvDatabase.SaveChanges();
 }