public ActionResult Edit(TrabalhoVM trabRecebido, String descricaoAluno, String descricaoOrientador)
        {
            String matriculaAluno   = descricaoAluno.Split(' ', '-', ' ').First();
            String codigoOrientador = descricaoOrientador.Split(' ', '-', ' ').First();

            Aluno alunoEscolhido = ObterListaAlunos()
                                   .Where(a => a.Matricula.Equals(matriculaAluno))
                                   .FirstOrDefault();
            Orientador orientadorEscolhido = ObterListaOrientadores()
                                             .Where(a => a.Codigo.Equals(codigoOrientador))
                                             .FirstOrDefault();

            if (alunoEscolhido == null || orientadorEscolhido == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            ModelState["Correcao"].Errors.Clear();
            ModelState["Apresentacao"].Errors.Clear();
            ModelState["Turma"].Errors.Clear();

            if (ModelState.IsValid)
            {
                bool podeEditar = ObterListaTrabalhos()
                                  .Where(a => a.Id == trabRecebido.Id)
                                  .FirstOrDefault() != null;
                if (!podeEditar)
                {
                    return(RedirectToAction("Unauthorized", "Erro"));
                }

                Trabalho novoTrabalho  = trabRecebido.ToTrabalho(alunoEscolhido, orientadorEscolhido);
                Trabalho trabalhoSalvo = _trabalhoRepository.Find(novoTrabalho.Id);
                _trabalhoRepository.Update(trabalhoSalvo, novoTrabalho);

                return(RedirectToAction("Index"));
            }
            ViewBag.alunos = ObterListaAlunos()
                             .ToAlunoVM();
            ViewBag.orientadores = ObterListaOrientadores()
                                   .ToOrientadorVM();

            return(View(trabRecebido));
        }
        public ActionResult Add(TrabalhoVM trabalhoRecebido, String descricaoAluno, String descricaoOrientador)
        {
            String matriculaAluno   = descricaoAluno.Split(' ', '-', ' ').First();
            String codigoOrientador = descricaoOrientador.Split(' ', '-', ' ').First();

            Aluno alunoEscolhido = ObterListaAlunos()
                                   .Where(a => a.Matricula.Equals(matriculaAluno))
                                   .FirstOrDefault();
            Orientador orientadorEscolhido = ObterListaOrientadores()
                                             .Where(a => a.Codigo.Equals(codigoOrientador))
                                             .FirstOrDefault();

            if (alunoEscolhido == null || orientadorEscolhido == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            Trabalho novoTrabalho = trabalhoRecebido.ToTrabalho(alunoEscolhido, orientadorEscolhido);

            ModelState["Correcao"].Errors.Clear();
            ModelState["Apresentacao"].Errors.Clear();
            ModelState["Turma"].Errors.Clear();
            if (ModelState.IsValid)
            {
                _trabalhoRepository.Persist(novoTrabalho);
                return(RedirectToAction("Index"));
            }
            List <AlunoVM> alunos = ObterListaAlunos().Where
                                        (a => a.Turma.Curso.Coordenador.Login.Equals(User.Identity.Name))
                                    .ToAlunoVM()
                                    .ToList();

            ViewBag.Orientadores = ObterListaOrientadores()
                                   .ToOrientadorVM();

            ViewBag.Alunos              = alunos;
            trabalhoRecebido.Aluno      = alunoEscolhido.ToAlunoVM();
            trabalhoRecebido.Orientador = orientadorEscolhido.ToOrientadorVM();

            return(View(trabalhoRecebido));
        }