public virtual JsonResult LoadCandidaturasModal([ModelBinder(typeof(DataTablesBinder))] IDataTablesRequest requestModel) { var request = requestModel.ConvertToDataTableRequestViewModel(); var response = _candidatoService.GetCandidatoCandidaturasModal(request); if (!response.IsValid) { return(null); } ////Esto muestra el estado "Entrevista" aunque físicamente estemos en "Segunda Entrevista". var estadoCandidaturaEntrevista = GenerateEstadosElements().First(x => x.Value == ((int)TipoEstadoCandidaturaEnum.Entrevista).ToString()).Text; foreach (var candidaturaRow in response.CandidaturaModalRowViewModel) { if (candidaturaRow.EstadoId == (int)TipoEstadoCandidaturaEnum.SegundaEntrevista) { candidaturaRow.Estado = estadoCandidaturaEntrevista; } } var result = from c in response.CandidaturaModalRowViewModel select new object[] { c.CandidaturaId, c.OrigenCv == null ? "" : c.OrigenCv.ToString(), (c.EstadoId == (int)TipoEstadoCandidaturaEnum.Renuncia || c.EstadoId == (int)TipoEstadoCandidaturaEnum.Descartado) ? string.Format("<span class=\"Statered\">{0}</span>", c.Estado) : c.Estado, (c.EstadoId == (int)TipoEstadoCandidaturaEnum.Contratado) ? string.Format("<span class=\"hidden\">{0}</span>", c.Etapa) : c.Etapa, c.Candidato, c.TipoTecnologia == null ? "" : c.TipoTecnologia.ToString(), c.Entrevistador, (c.EtapaId == (int)TipoEtapaCandidaturaEnum.FiltradoTecnico || c.EtapaId == (int)TipoEtapaCandidaturaEnum.Inicio || c.EtapaId == (int)TipoEtapaCandidaturaEnum.AgendarEntrevistas) ? "": FormatHelper.Format(c.Agendada.Date, "dd/MM/yyyy"), c.Perfil, c.Modulo, c.PersonaCreacion, c.Centro, this.RenderRazorViewToString("Table/actionColumnModalCandidatura", c), }; var jsonResponse = new DataTablesResponse(requestModel.Draw, result, response.TotalElementos, response.TotalElementos); return(Json(jsonResponse, JsonRequestBehavior.AllowGet)); }