public ActionResult CrearBloqueXPlanXCurso(BlockXPlanXCourse pBloqueXPlanXCurso, string selectPlanDeEstudio, string selectBloqueAcademico, string selectCurso)
        {
            int PlanID = Int16.Parse(selectPlanDeEstudio);

            if (pBloqueXPlanXCurso != null && selectPlanDeEstudio != null && selectBloqueAcademico != null && selectCurso != null)
            {
                int BloqueID = Int16.Parse(selectBloqueAcademico);
                int CursoID  = Int16.Parse(selectCurso);

                pBloqueXPlanXCurso.CourseID     = CursoID;
                pBloqueXPlanXCurso.BlockXPlanID = idBloqueXPlan(PlanID, BloqueID);
                if (existeRelacionBloqueXPlanXCurso(pBloqueXPlanXCurso.BlockXPlanID, pBloqueXPlanXCurso.CourseID))
                {
                    TempData[TempDataMessageKey] = "El Bloque académico de este plan de estudio ya cuenta con el curso seleccionado. Por Favor intente de nuevo.";
                    return(RedirectToAction("CrearBloqueXPlanXCurso", new { plan = PlanID }));
                }
                if (existeRelacionCursoEnPlan(PlanID, pBloqueXPlanXCurso.CourseID))
                {
                    TempData[TempDataMessageKey] = "El Plan de estudio  ya cuenta con el curso seleccionado. Por Favor intente de nuevo.";
                    return(RedirectToAction("CrearBloqueXPlanXCurso", new { plan = PlanID }));
                }

                crearRelacionBloqueXPlanXCurso(CursoID, idBloqueXPlan(PlanID, BloqueID));
                TempData[TempDataMessageKeySuccess] = "El curso ha sido asignado al bloque académico del plan de estudio exitosamente";
                return(RedirectToAction("CrearBloqueXPlanXCurso", new { plan = PlanID }));
            }
            TempData[TempDataMessageKey] = "Datos ingresados son inválidos";
            return(RedirectToAction("CrearBloqueXPlanXCurso", new { plan = PlanID }));
        }
        public ActionResult CrearBloqueXPlanXCurso(BlockXPlanXCourse pBloqueXPlanXCurso, string selectPlanDeEstudio, string selectBloqueAcademico, string selectCurso)
        {
            int PlanID = Int16.Parse(selectPlanDeEstudio);
            if (pBloqueXPlanXCurso != null && selectPlanDeEstudio != null && selectBloqueAcademico != null && selectCurso != null)
            {
                int BloqueID = Int16.Parse(selectBloqueAcademico);
                int CursoID = Int16.Parse(selectCurso);

                pBloqueXPlanXCurso.CourseID = CursoID;
                pBloqueXPlanXCurso.BlockXPlanID = idBloqueXPlan(PlanID, BloqueID);
                if (existeRelacionBloqueXPlanXCurso(pBloqueXPlanXCurso.BlockXPlanID, pBloqueXPlanXCurso.CourseID))
                {
                    TempData[TempDataMessageKey] = "El Bloque académico de este plan de estudio ya cuenta con el curso seleccionado. Por Favor intente de nuevo.";
                    return RedirectToAction("CrearBloqueXPlanXCurso", new { plan = PlanID });
                }
                if (existeRelacionCursoEnPlan(PlanID, pBloqueXPlanXCurso.CourseID))
                {
                    TempData[TempDataMessageKey] = "El Plan de estudio  ya cuenta con el curso seleccionado. Por Favor intente de nuevo.";
                    return RedirectToAction("CrearBloqueXPlanXCurso", new { plan = PlanID });
                }

                crearRelacionBloqueXPlanXCurso(CursoID, idBloqueXPlan(PlanID, BloqueID));
                TempData[TempDataMessageKeySuccess] = "El curso ha sido asignado al bloque académico del plan de estudio exitosamente";
                return RedirectToAction("CrearBloqueXPlanXCurso", new { plan = PlanID });

            }
            TempData[TempDataMessageKey] = "Datos ingresados son inválidos";
            return RedirectToAction("CrearBloqueXPlanXCurso", new { plan = PlanID });
        }
        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 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();
        }