public ActionResult Editar(CandidatoViewModel model)
        {
            if (ModelState.IsValid)
            {
                var auth = JsonConvert.DeserializeObject <UsuarioAutenticado>(HttpContext.User.Identity.Name);
                try
                {
                    CandidatoDal c         = new CandidatoDal();
                    Candidato    candidato = c.FindById(model.Id);

                    candidato.Nome             = model.Nome;
                    candidato.GrauInstrucao    = model.GrauInstrucao;
                    candidato.QtdeCertificados = model.QtdeCertificados;
                    candidato.Situacao         = model.Situacao;
                    candidato.DataCadastro     = model.DataCadastro;
                    candidato.DataAtualizacao  = DateTime.Now;
                    candidato.CadastradoPor    = model.CadastradoPor;
                    candidato.AtualizadoPor    = auth.Nome;
                    candidato.Observacao       = model.Observacao;

                    c.Update(candidato);

                    ModelState.Clear();
                    TempData["Sucesso"] = "Registro alterado com sucesso";
                }
                catch (Exception e)
                {
                    TempData["Falha"] = e.Message;
                    //return RedirectToAction("Detalhes", "Candidato", new { model.Id });
                }
            }
            return(RedirectToAction("Detalhes", "Candidato", new { model.Id }));
        }
        public ActionResult AddCurriculo(CandidatoViewModel model, HttpPostedFileBase upload)
        {
            if (!ModelState.IsValid)
            {
                var auth = JsonConvert.DeserializeObject <UsuarioAutenticado>(HttpContext.User.Identity.Name);
                try
                {
                    // Verifica se o tipo do arquivo é permitido
                    // Apenas PDF DOC e DOCX são permitidos
                    if (!ValidaTipoCurriculo(upload.ContentType))
                    {
                        TempData["Falha"] = "Tipo de arquivo não permitido";
                        return(RedirectToAction("Detalhes", "Candidato", new { model.Id }));
                    }

                    CandidatoDal c         = new CandidatoDal();
                    Candidato    candidato = c.FindById(model.Id);

                    if (upload != null && upload.ContentLength > 0)
                    {
                        using (var reader = new System.IO.BinaryReader(upload.InputStream))
                        {
                            CurriculoDal cu        = new CurriculoDal();
                            Curriculo    curriculo = new Curriculo();
                            curriculo.Nome          = upload.FileName;
                            curriculo.Tamanho       = upload.ContentLength;
                            curriculo.Tipo          = upload.ContentType;
                            curriculo.Conteudo      = reader.ReadBytes(upload.ContentLength);
                            curriculo.DataCadastro  = DateTime.Now;
                            curriculo.CadastradoPor = auth.Nome;
                            curriculo.IdCandidato   = candidato.Id;
                            cu.Insert(curriculo);
                            candidato.Curriculos = new List <Curriculo> {
                                curriculo
                            };
                        }
                    }
                    c.Update(candidato);
                    TempData["Sucesso"] = "Currículo adicionado com sucesso";
                    ModelState.Clear();
                }
                catch (Exception e)
                {
                    TempData["Falha"] = e.Message;
                }
                return(RedirectToAction("Detalhes", "Candidato", new { model.Id }));
            }
            return(View());
        }