public ActionResult CadastrarEleicao(Eleicoes criarVotacao)
        {
            string idUser  = HttpContext.Session.GetString("Id");
            var    usuario = _db.Usuarios.SingleOrDefault(u => u.CodUsuario.ToString().Equals(idUser));

            if (usuario != null)
            {
                var nomeVotacaoExistente = _db.Eleicoes.SingleOrDefault(u => u.Titulo.Equals(criarVotacao.Titulo));
                if (nomeVotacaoExistente == null)
                {
                    criarVotacao.ChaveAcesso = BCrypt.Net.BCrypt.HashPassword(criarVotacao.ChaveAcesso);
                    Eleicao eleicao = new Eleicao(criarVotacao.Titulo, criarVotacao.Descricao, criarVotacao.ChaveAcesso, criarVotacao.VotoMultiplo, "P");
                    eleicao.CodEleicao = _db.GetMySequence("seq_eleicao");
                    UsuarioEleicao usuario_x_eleicao = new UsuarioEleicao();
                    usuario_x_eleicao.CodEleicao    = eleicao.CodEleicao;
                    usuario_x_eleicao.CodUsuario    = usuario.CodUsuario;
                    usuario_x_eleicao.Organizador   = true;
                    usuario_x_eleicao.VotoConcluido = false;
                    _db.Eleicoes.Add(eleicao);
                    _db.UsuarioEleicoes.Add(usuario_x_eleicao);
                    _db.SaveChanges();
                    return(RedirectToAction("PainelEleicao", "PainelEleicao", new { id = eleicao.CodEleicao }));
                }
                ViewBag.MensagemErro = "Este título já está em uso.";
                return(View("CriacaoVotacao"));
            }
            return(RedirectToAction("Login", "Home"));
        }
        public IActionResult InscreverSeEleicao(FormularioInscricao inscricao)
        {
            string idUser = HttpContext.Session.GetString("Id");

            if (idUser != null)
            {
                var eleicao = _db.Eleicoes.SingleOrDefault(e => e.CodEleicao == inscricao.CodEleicao);
                if (eleicao != null)
                {
                    var usuarioInscrito = _db.UsuarioEleicoes
                                          .SingleOrDefault(e => e.CodEleicao == inscricao.CodEleicao &&
                                                           e.CodUsuario.ToString().Equals(idUser));
                    if (usuarioInscrito == null)
                    {
                        if (BCrypt.Net.BCrypt.Verify(inscricao.ChaveAcesso, eleicao.ChaveAcesso))
                        {
                            UsuarioEleicao usuario_x_eleicao = new UsuarioEleicao();
                            usuario_x_eleicao.CodEleicao    = inscricao.CodEleicao;
                            usuario_x_eleicao.CodUsuario    = Decimal.Parse(idUser);
                            usuario_x_eleicao.Organizador   = false;
                            usuario_x_eleicao.VotoConcluido = false;

                            _db.UsuarioEleicoes.Add(usuario_x_eleicao);
                            _db.SaveChanges();

                            return(RedirectToAction("VotacaoInicio", "Votacao", new { id = inscricao.CodEleicao }));
                        }
                        ViewBag.EleicaoTitulo = eleicao.Titulo;
                        ViewData.Add("MensagemErro", "Chave de acesso inválida.");
                        return(View("FormInscricao", inscricao));
                    }
                }

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

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