コード例 #1
0
        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));
        }