public ActionResult ListaConvocados(string ProcessoId, string cargo)
        {
            var dadosConvocadoViewModel = new ConvocadoViewModel
            {
                CargoId    = Guid.Parse(cargo),
                ProcessoId = Guid.Parse(ProcessoId)
            };

            var convocados = _convocacaoAppService.Search(a => a.ProcessoId.Equals(dadosConvocadoViewModel.ProcessoId));

            ViewBag.DadosConvocacao = _processoAppService.GetById(dadosConvocadoViewModel.ProcessoId);
            ViewBag.ListaCandidatos = _convocadoAppService
                                      .Search(a => a.CargoId.Equals(dadosConvocadoViewModel.CargoId)).OrderBy(a => a.Posicao)
                                      .Where(a => convocados.All(p2 => p2.ConvocadoId != a.ConvocadoId));

            ViewBag.DadosCargo    = _cargoAppService.GetById(dadosConvocadoViewModel.CargoId);
            ViewBag.ProcessoId    = ProcessoId;
            ViewBag.dadosProcesso = _processoAppService.GetById(Guid.Parse(ProcessoId));

            return(View());
        }
        public ActionResult Index()
        {
            if (User.IsInRole("Cliente"))
            {
                return(RedirectToAction("Index", "Processos"));
            }

            if (!User.IsInRole("Convocado"))
            {
                return(View());
            }

            var dadosConvocado = _convocadoAppService.GetById(Guid.Parse(User.Identity.GetUserId()));

            ViewBag.dadosConvocado = dadosConvocado;

            var dadosProcesso = _processoAppService.GetById(dadosConvocado.ProcessoId);

            ViewBag.dadosProcesso = dadosProcesso;

            var dadosConvocacao = _convocacaoAppService.Search(a =>
                                                               a.ConvocadoId.Equals(dadosConvocado.ConvocadoId) && a.ProcessoId.Equals(dadosProcesso.ProcessoId))
                                  .FirstOrDefault();

            ViewBag.dadosConvocacao = dadosConvocacao;

            var listaDocumentacao = _documentacaoAppService.Search(a => a.ProcessoId.Equals(dadosProcesso.ProcessoId));

            ViewBag.ListaDocumentacao = listaDocumentacao;

            if (string.IsNullOrEmpty(dadosConvocacao.Desistente))
            {
                return(View());
            }

            if (dadosConvocacao.Desistente.Equals("N"))
            {
                return(RedirectToAction("DocumentacaoConvocado", "Convocacao",
                                        new { dadosProcesso.ProcessoId, dadosConvocacao.ConvocadoId, dadosConvocacao.ConvocacaoId }));
            }
            if (dadosConvocacao.Desistente.Equals("S"))
            {
                return(RedirectToAction("DesistenciaCandidato", "Convocacao",
                                        new { dadosProcesso.ProcessoId, dadosConvocacao.ConvocadoId, dadosConvocacao.ConvocacaoId }));
            }
            return(View());
        }
        public ActionResult ClassificadosPorCargo(Guid id, Guid cargo)
        {
            ViewBag.ProcessoId = id;

            var dadosConfirmados = _convocacaoAppService.Search(a => a.ProcessoId.Equals(id))
                                   .Where(b => b.StatusConvocacao != null);
            var convocados = _convocadoAppService.Search(a => a.ProcessoId.Equals(id) && a.CargoId.Equals(cargo));

            ViewBag.ListaConvocadosPorCargo = _convocacaoAppService.MontaListaDeConvocados(dadosConfirmados, convocados)
                                              .OrderBy(x => x.Posicao);
            ViewBag.ListaCargos = _cargoAppService.Search(a => a.ProcessoId.Equals(id) && a.Ativo.Equals(true))
                                  .OrderBy(x => x.Nome);

            return(View());
        }