public IActionResult EditarCandidato(string id, string candidatoId) { string idUser = HttpContext.Session.GetString("Id"); if (idUser != null) { var eleicao = _db.Eleicoes .FromSqlRaw("SELECT * from eleicao where cod_eleicao IN " + "(select cod_eleicao from usuario_x_eleicao where cod_usuario = '" + idUser + "' and cod_eleicao = " + id + " and organizador = true)"); if (eleicao.Count() > 0 && eleicao.First().Status.Equals("P")) { var candidato = _db.Candidatos.SingleOrDefault(c => c.CodCandidato.ToString().Equals(candidatoId));; if (candidato != null) { CandidatoEdicao candidatoModel = new CandidatoEdicao(); candidatoModel.CodEleicao = candidato.CodEleicao; candidatoModel.CodCandidato = candidato.CodCandidato; candidatoModel.Nome = candidato.Nome; candidatoModel.GrupoPartido = candidato.GrupoPartido; candidatoModel.Descricao = candidato.Descricao; candidatoModel.ImagemPath = candidato.Imagem; candidatoModel.ImagemAntiga = candidato.Imagem.Substring(candidato.Imagem.IndexOf("_") + 1); ViewBag.MensagemSucesso = TempData["MensagemSucesso"] != null ? TempData["MensagemSucesso"].ToString() : null; ViewBag.EleicaoId = id; return(View(candidatoModel)); } return(RedirectToAction("PainelEleicao", "PainelEleicao", new { id })); } return(RedirectToAction("MinhasEleicoes", "ListaEleicao")); } return(RedirectToAction("Login", "Home")); }
public IActionResult EditarCandidatoPost(CandidatoEdicao candidatoEdicao) { string idUser = HttpContext.Session.GetString("Id"); if (idUser != null) { var eleicao = _db.Eleicoes .FromSqlRaw("SELECT * from eleicao where cod_eleicao IN " + "(select cod_eleicao from usuario_x_eleicao where cod_usuario = '" + idUser + "' and cod_eleicao = " + candidatoEdicao.CodEleicao + " and organizador = true)"); if (eleicao.Count() > 0 && eleicao.First().Status.Equals("P")) { var candidatoExistente = _db.Candidatos.Where(c => c.CodCandidato.Equals(candidatoEdicao.CodCandidato)); if (candidatoExistente.Count() > 0) { var nomeAtual = _db.Candidatos .Where(c => c.CodCandidato.Equals(candidatoEdicao.CodCandidato)) .Select(c => c.Nome) .ToList().First(); if (!nomeAtual.Equals(candidatoEdicao.Nome)) { var nomeExistente = _db.Candidatos.Where(c => c.Nome.Equals(candidatoEdicao.Nome) && c.CodEleicao.Equals(candidatoEdicao.CodEleicao)); if (nomeExistente.Count() > 0) { candidatoEdicao.Nome = nomeAtual; ViewBag.MensagemErro = "Já existe um candidato com este nome."; ViewBag.EleicaoId = candidatoEdicao.CodEleicao; return(View("EditarCandidato", candidatoEdicao)); } } Candidato candidato = new Candidato(); candidato.CodEleicao = candidatoEdicao.CodEleicao; candidato.CodCandidato = candidatoEdicao.CodCandidato; candidato.Descricao = candidatoEdicao.Descricao; candidato.Nome = candidatoEdicao.Nome; candidato.GrupoPartido = candidatoEdicao.GrupoPartido; candidato.Imagem = candidatoEdicao.ImagemPath; if (candidatoEdicao.Imagem != null) { string pastaUpload = Path.Combine(_hostingEnvironment.WebRootPath + "/media"); string pathArquivo = Path.Combine(pastaUpload, candidatoEdicao.ImagemPath); System.IO.File.Delete(pathArquivo); string nomeArquivo = Guid.NewGuid().ToString() + "_" + candidatoEdicao.Imagem.FileName; pathArquivo = Path.Combine(pastaUpload, nomeArquivo); FileStream fs = new FileStream(pathArquivo, FileMode.Create); candidatoEdicao.Imagem.CopyTo(fs); fs.Close(); candidato.Imagem = nomeArquivo; } _db.Candidatos.Update(candidato); _db.SaveChanges(); TempData["MensagemSucesso"] = "Alterações salvas com sucesso!"; return(RedirectToAction("EditarCandidato", new { id = candidatoEdicao.CodEleicao, candidatoId = candidatoEdicao.CodCandidato })); } ViewBag.MensagemErro = "Este cargo não existe."; ViewBag.EleicaoId = candidatoEdicao.CodEleicao; return(View("EditarCandidato", candidatoEdicao)); } return(RedirectToAction("MinhasEleicoes", "ListaEleicao")); } return(RedirectToAction("Login", "Home")); }