public IActionResult CadastrarCandidaturaPost(CandidaturaCadastro candidaturaCadastro)
        {
            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 = " + candidaturaCadastro.CodEleicao + " and organizador = true)");
                if (eleicao.Count() > 0 && eleicao.First().Status.Equals("P"))
                {
                    foreach (decimal codCandidato in candidaturaCadastro.CodCandidato)
                    {
                        var candidaturaExistente = _db.CargoCandidatos.Where(c => c.CodCandidato.Equals(codCandidato) && c.CodCargo.Equals(candidaturaCadastro.CodCargo));
                        if (candidaturaExistente.Count() == 0)
                        {
                            CargoCandidato cargo_x_candidato = new CargoCandidato();
                            cargo_x_candidato.CodEleicao   = candidaturaCadastro.CodEleicao;
                            cargo_x_candidato.CodCandidato = codCandidato;
                            cargo_x_candidato.CodCargo     = candidaturaCadastro.CodCargo;

                            _db.CargoCandidatos.Add(cargo_x_candidato);
                        }
                    }
                    _db.SaveChanges();
                    return(RedirectToAction("Candidaturas", new { id = candidaturaCadastro.CodEleicao, cargoId = candidaturaCadastro.CodCargo }));
                }
                return(RedirectToAction("MinhasEleicoes", "ListaEleicao"));
            }

            return(RedirectToAction("Login", "Home"));
        }
        public IActionResult CadastrarCandidatura(string id, string cargoId)
        {
            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 cargo = _db.Cargos.Where(c => c.CodCargo.ToString().Equals(cargoId)).ToList();
                    if (cargo.Count() > 0)
                    {
                        CandidaturaCadastro candidatura = new CandidaturaCadastro();
                        candidatura.CodEleicao = decimal.Parse(id);
                        candidatura.CodCargo   = decimal.Parse(cargoId);

                        var candidaturasRegistradas = _db.CargoCandidatos
                                                      .Where(cc => cc.CodCargo.ToString().Equals(cargoId))
                                                      .Select(cc => cc.CodCandidato).ToList();

                        var candidatos = _db.Candidatos
                                         .Where(c => !candidaturasRegistradas.Contains(c.CodCandidato) &&
                                                c.CodEleicao.ToString().Equals(id))
                                         .Select(c => new {
                            CodCandidato = c.CodCandidato,
                            Nome         = c.Nome
                        }).ToList();
                        ViewBag.Candidatos = new MultiSelectList(candidatos, "CodCandidato", "Nome");;

                        ViewBag.EleicaoTitulo = eleicao.First().Titulo;
                        ViewBag.CargoNome     = cargo.First().Nome;
                        return(View(candidatura));
                    }

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

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