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 Edit(SemesterView view, bool error = false)
        {
            try
            {
                ViewBag.HideScreen = false;

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

                if (error)
                {
                    ViewBag.Message = "Não foi possível salvar o registro. Analise os erros.";
                    return(View("Edit", view));
                }

                ModelState.Clear();

                if (Equals(view.IdSemester, System.Guid.Empty))
                {
                    return(View("Edit", view));
                }

                var item = Semester.Find(view.IdSemester);

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

                view.PeriodSelected   = item.Period.Trim();
                view.PeriodSelectList = new SelectList(Semester.Periods(), item.Period.Trim());
                view.InitialDate      = item.InitialDate;
            }
            catch (Exception e)
            {
                object[] parameters = { view, error };
                string   notes      = LogHelper.Notes(parameters, e.Message);
                Log.Add(Log.TYPE_ERROR, "SistemaMatricula.Controllers.SemesterController.Edit", notes);
                ViewBag.Message    = "Não foi possível realizar a solicitação. Erro de execução.";
                ViewBag.HideScreen = true;
            }

            return(View("Edit", view));
        }
        public ActionResult Update(SemesterView view)
        {
            try
            {
                if (ModelState.IsValid == false)
                {
                    return(Edit(view, true));
                }

                view.Period = view.PeriodSelected.Trim();

                if (Equals(view.IdSemester, System.Guid.Empty))
                {
                    var insert = Semester.Add(view);

                    if (insert == false)
                    {
                        return(Edit(view, true));
                    }

                    return(RedirectToAction("Index", "Semester"));
                }

                var update = Semester.Update(view);

                if (update == false)
                {
                    return(Edit(view, true));
                }

                return(RedirectToAction("Index", "Semester"));
            }
            catch (Exception e)
            {
                string notes = LogHelper.Notes(view, e.Message);
                Log.Add(Log.TYPE_ERROR, "SistemaMatricula.Controllers.SemesterController.Update", notes);
                ViewBag.Message    = "Não foi possível realizar a solicitação. Erro de execução.";
                ViewBag.HideScreen = true;
            }

            return(View("Edit"));
        }