public ActionResult Adicionar(CandidaturaViewModel candidaturaViewModel)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.Areas = AreaCandidaturaRepositorio.BuscarTodas();
                return(View(candidaturaViewModel));
            }
            else
            {
                if (candidaturaViewModel.BIFile != null)
                {
                    candidaturaViewModel.BI = GuardarFicheiro(candidaturaViewModel.BIFile, User.Identity.Name);
                }

                if (candidaturaViewModel.CertificadoFile != null)
                {
                    candidaturaViewModel.Certificado = GuardarFicheiro(candidaturaViewModel.CertificadoFile, User.Identity.Name);
                }

                if (candidaturaViewModel.CartaFile != null)
                {
                    candidaturaViewModel.Carta = GuardarFicheiro(candidaturaViewModel.CartaFile, User.Identity.Name);
                }

                candidaturaViewModel.UsuarioId = UsuarioRepositorio.BuscarPeloEmail(User.Identity.Name).Id;

                CandidaturaRepositorio.Salvar(Mapper.Map <Candidatura>(candidaturaViewModel));

                TempData["MsgAviso"] = "Candidatura enviada com sucesso!";

                return(RedirectToAction("Perfil", "Usuario"));
            }
        }
        public ActionResult Create(int?id)
        {
            var areas       = AreaCandidaturaRepositorio.BuscarTodas();
            var tempoExames = TempoExameRepositorio.BuscarTodos();

            Questionario questionaTemp;

            if (id == null || id == 0)
            {
                questionaTemp = new Questionario
                {
                    TempoExameId      = tempoExames[0].Id,
                    AreaCandidaturaId = areas[0].Id,
                    Titulo            = QuestionarioRepositorio.GerarNomeAutomatico(),
                    UsuarioId         = UsuarioRepositorio.BuscarPeloEmail(User.Identity.Name).Id,
                    DataCadastro      = DateTime.Now,
                    Ativo             = true
                };

                var questId = QuestionarioRepositorio.Salvar(questionaTemp);
                questionaTemp = QuestionarioRepositorio.BuscarPeloId(questId);
            }
            else
            {
                questionaTemp = QuestionarioRepositorio.BuscarPeloId(id);
            }

            ViewBag.QuestionarioId   = questionaTemp.Id;
            ViewBag.UsuarioId        = questionaTemp.UsuarioId;
            ViewBag.AreaCandidaturas = areas;
            ViewBag.Tempo            = tempoExames;
            ViewBag.TotalPerguntas   = questionaTemp.TotalPerguntas();
            return(View(questionaTemp));
        }
        public ActionResult UsuarioAtual()
        {
            var user = UsuarioRepositorio.BuscarPeloEmail(User.Identity.Name);

            var usuarioViewModel = Mapper.Map <UsuarioAtualViewModel>(user);

            return(PartialView("~/Views/Shared/_UsuarioAtual.cshtml", usuarioViewModel));
        }
        public ActionResult Perfil()
        {
            var user = UsuarioRepositorio.BuscarPeloEmail(User.Identity.Name);

            var usuarioViewModel = Mapper.Map <UsuarioAtualViewModel>(user);

            var concursoAtual = ConcursoRepositorio.BuscarConcursoAtual();

            var ultimaCandidatura = CandidaturaRepositorio.BuscarPeloUsuarioId(user.Id)
                                    .Where(c => c.ConcursoId == concursoAtual.Id)
                                    .OrderByDescending(c => c.DataCadastro)
                                    .FirstOrDefault();

            if (ultimaCandidatura != null)
            {
                usuarioViewModel.DataUltimaCandidatura = ultimaCandidatura.DataCadastro;
                usuarioViewModel.UltimaCandidaturaId   = ultimaCandidatura.Id;
                usuarioViewModel.DataExame             = ConcursoRepositorio.BuscarPeloId(ultimaCandidatura.ConcursoId).DataExames;
            }


            return(View(usuarioViewModel));
        }