public IActionResult EditarVotacao(string id)
        {
            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)
                {
                    var eleicaoEdit = _db.Eleicoes.SingleOrDefault(e => e.CodEleicao.ToString().Equals(id));
                    if (eleicao != null)
                    {
                        EleicoesEdit eleicaoModel = new EleicoesEdit();
                        eleicaoModel.CodEleicao   = eleicaoEdit.CodEleicao;
                        eleicaoModel.Titulo       = eleicaoEdit.Titulo;
                        eleicaoModel.Descricao    = eleicaoEdit.Descricao;
                        eleicaoModel.Status       = eleicaoEdit.Status;
                        eleicaoModel.VotoMultiplo = eleicaoEdit.VotoMultiplo;
                        ViewBag.MensagemSucesso   = TempData["MensagemSucesso"] != null ? TempData["MensagemSucesso"].ToString() : null;
                        return(View(eleicaoModel));
                    }

                    return(RedirectToAction("PainelEleicao", "PainelEleicao", new { id }));
                }
                return(RedirectToAction("MinhasEleicoes", "ListaEleicao"));
            }

            return(RedirectToAction("Login", "Home"));
        }
        public IActionResult EditarVotacaoPost(EleicoesEdit cadastrarEleicao)
        {
            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 = " + cadastrarEleicao.CodEleicao + " and organizador = true)");
                if (eleicao.Count() > 0)
                {
                    var nomeAtual = _db.Eleicoes
                                    .Where(e => e.CodEleicao == cadastrarEleicao.CodEleicao)
                                    .Select(e => e.Titulo)
                                    .ToList()
                                    .First();
                    if (!nomeAtual.Equals(cadastrarEleicao.Titulo))
                    {
                        var nomeExistente = _db.Eleicoes.Where(e => e.Titulo.Equals(cadastrarEleicao.Titulo)).ToList();
                        if (nomeExistente.Count() > 0)
                        {
                            ViewBag.MensagemErro = "Este título já está sendo utilizado.";
                            return(View("EditarVotacao", cadastrarEleicao));
                        }
                    }
                    if (cadastrarEleicao.ChaveAcesso == null)
                    {
                        var chaveAcessoAtual = _db.Eleicoes
                                               .Where(e => e.CodEleicao == cadastrarEleicao.CodEleicao)
                                               .Select(e => e.ChaveAcesso)
                                               .ToList()
                                               .First();
                        cadastrarEleicao.ChaveAcesso = chaveAcessoAtual;
                    }
                    else
                    {
                        cadastrarEleicao.ChaveAcesso = BCrypt.Net.BCrypt.HashPassword(cadastrarEleicao.ChaveAcesso);
                    }
                    Eleicao eleicaoModel = new Eleicao();
                    eleicaoModel.ChaveAcesso  = cadastrarEleicao.ChaveAcesso;
                    eleicaoModel.CodEleicao   = cadastrarEleicao.CodEleicao;
                    eleicaoModel.Titulo       = cadastrarEleicao.Titulo;
                    eleicaoModel.Descricao    = cadastrarEleicao.Descricao;
                    eleicaoModel.Status       = cadastrarEleicao.Status;
                    eleicaoModel.VotoMultiplo = cadastrarEleicao.VotoMultiplo;
                    _db.Eleicoes.Update(eleicaoModel);
                    _db.SaveChanges();
                    TempData["MensagemSucesso"] = "Eleição alterada com sucesso.";
                    return(RedirectToAction("EditarVotacao", "CriacaoVotacao", new { id = cadastrarEleicao.CodEleicao }));
                }
                return(RedirectToAction("MinhasEleicoes", "ListaEleicao"));
            }

            return(RedirectToAction("Login", "Home"));
        }