public ActionResult Index(SemesterView view)
        {
            ModelState.Clear();

            try
            {
                view.PeriodSelectList = new SelectList(Semester.Periods());

                if (view.PeriodSelected != null)
                {
                    view.Period = view.PeriodSelected;
                }

                if (view.Pagination == null)
                {
                    view.Pagination = new Pagination();
                }

                ViewBag.List = Semester.List(view);

                if (ViewBag.List == null)
                {
                    throw new Exception("Os semestres não foram listados");
                }
            }
            catch (Exception e)
            {
                string notes = LogHelper.Notes(view, e.Message);
                Log.Add(Log.TYPE_ERROR, "SistemaMatricula.Controllers.SemesterController.Index", notes);
                ViewBag.Message = "Não foi possível realizar a solicitação. Erro de execução.";
            }

            return(View(view));
        }
        public ActionResult Index(GridIndexView view)
        {
            try
            {
                ModelState.Clear();

                var courses = Course.List(sort: by => by.Name);

                if (courses == null)
                {
                    throw new Exception("Os cursos não foram listados");
                }

                var semesters = Semester.List();

                if (semesters == null)
                {
                    throw new Exception("Os semestres não foram listados");
                }

                if (Equals(view.CourseSelected, Guid.Empty))
                {
                    view.CourseSelected = courses[0].IdCourse;
                }

                if (Equals(view.SemesterSelected, Guid.Empty))
                {
                    view.SemesterSelected = semesters[0].IdSemester;
                }

                view.CourseSelectList   = new SelectList(courses, "IdCourse", "Name", view.CourseSelected);
                view.SemesterSelectList = new SelectList(semesters, "IdSemester", "Name", view.SemesterSelected);

                var semester = semesters.Find(x => x.IdSemester == view.SemesterSelected);

                view.Class = new Class {
                    Course = new Course()
                    {
                        IdCourse = view.CourseSelected
                    }
                };
                view.Semester = semester;

                ViewBag.List = Grid.List(view);

                if (ViewBag.List == null)
                {
                    throw new Exception("As grades não foram listadas");
                }
            }
            catch (Exception e)
            {
                string notes = LogHelper.Notes(view, e.Message);
                Log.Add(Log.TYPE_ERROR, "SistemaMatricula.Controllers.GridController.Index", notes);
                ViewBag.Message = "Não foi possível realizar a solicitação. Erro de execução.";
            }

            return(View(view));
        }
        public ActionResult Index(RegistryIndexView view)
        {
            try
            {
                ModelState.Clear();

                var semesters = Semester.List();

                if (semesters == null)
                {
                    throw new Exception("Os semestres não foram listados");
                }

                Student logged = Student.FindLoggedUser();

                if (logged == null)
                {
                    throw new Exception("Aluno não encontrado");
                }

                if (Equals(view.SemesterSelected, Guid.Empty))
                {
                    view.SemesterSelected = semesters[0].IdSemester;
                }

                view.SemesterSelectList = new SelectList(semesters, "IdSemester", "Name", view.SemesterSelected);

                Registry filters = new Registry()
                {
                    Student = logged,
                    Grid    = new Grid()
                    {
                        Semester = new Semester()
                        {
                            IdSemester = view.SemesterSelected
                        }
                    }
                };

                ViewBag.List = Registry.List(filters);

                if (ViewBag.List == null)
                {
                    throw new Exception("As matrículas não foram listadas");
                }
            }
            catch (Exception e)
            {
                string notes = LogHelper.Notes(view, e.Message);
                Log.Add(Log.TYPE_ERROR, "SistemaMatricula.Controllers.RegistryController.Index", notes);
                ViewBag.Message = "Não foi possível realizar a solicitação. Erro de execução.";
            }

            return(View(view));
        }
        public ActionResult Copy(GridCopyView view, bool error = false)
        {
            try
            {
                ViewBag.HideScreen = false;

                var semesters = Semester.List();

                if (semesters == null)
                {
                    throw new Exception("Os semestres não foram listados");
                }

                if (Equals(view.OrigenSelected, Guid.Empty))
                {
                    view.OrigenSelected = semesters[0].IdSemester;
                }

                if (Equals(view.DestinySelectList, Guid.Empty))
                {
                    view.DestinySelected = semesters[0].IdSemester;
                }

                view.OrigenSelectList  = new SelectList(semesters, "IdSemester", "Name", view.OrigenSelected);
                view.DestinySelectList = new SelectList(semesters, "IdSemester", "Name", view.DestinySelected);

                if (error)
                {
                    ViewBag.Message = "Não foi possível realizar a matrícula. Analise os erros.";
                    return(View("Copy"));
                }

                ModelState.Clear();
            }
            catch (Exception e)
            {
                object[] parameters = { view, error };
                string   notes      = LogHelper.Notes(parameters, e.Message);
                Log.Add(Log.TYPE_ERROR, "SistemaMatricula.Controllers.GridController.Copy.Get", notes);
                ViewBag.Message    = "Não foi possível realizar a solicitação. Erro de execução.";
                ViewBag.HideScreen = true;
            }

            return(View("Copy", view));
        }
        public ActionResult List(RegistryListView view)
        {
            try
            {
                ModelState.Clear();

                var semesters = Semester.List();

                if (semesters == null)
                {
                    throw new Exception("Os semestres não foram listados");
                }

                Teacher logged = Teacher.FindLoggedUser();

                if (logged == null)
                {
                    throw new Exception("Professor não encontrado");
                }

                var classList = Class.List(logged.IdTeacher);

                if (classList == null)
                {
                    throw new Exception("As disciplinas não foram listadas");
                }

                if (Equals(view.SemesterSelected, Guid.Empty))
                {
                    view.SemesterSelected = semesters[0].IdSemester;
                }

                if (Equals(view.ClassSelected, Guid.Empty))
                {
                    view.ClassSelected = classList[0].IdClass;
                }

                view.SemesterSelectList = new SelectList(semesters, "IdSemester", "Name", view.SemesterSelected);
                view.ClassSelectList    = new SelectList(classList, "IdClass", "Name", view.ClassSelected);

                Registry filters = new Registry()
                {
                    Grid = new Grid()
                    {
                        Semester = new Semester()
                        {
                            IdSemester = view.SemesterSelected
                        },
                        Teacher = new Teacher()
                        {
                            IdTeacher = logged.IdTeacher
                        },
                        Class = new Class()
                        {
                            IdClass = view.ClassSelected
                        }
                    }
                };

                ViewBag.List = Registry.List(filters);

                if (ViewBag.List == null)
                {
                    throw new Exception("As matrículas não foram listadas");
                }
            }
            catch (Exception e)
            {
                string notes = LogHelper.Notes(view, e.Message);
                Log.Add(Log.TYPE_ERROR, "SistemaMatricula.Controllers.RegistryController.List", notes);
                ViewBag.Message = "Não foi possível realizar a solicitação. Erro de execução.";
            }

            return(View(view));
        }