//con esto accedemos a los nombres de otras tablas public static CandidaturaRowViewModel convertToOferta(Candidatura candidatura) { var result = new CandidaturaRowViewModel(); if ((candidatura.Oferta != null)) { var entrevista = candidatura.Oferta.Nombre; result.Oferta = entrevista; } return(result); }
private static CandidaturaRowViewModel ConvertToCandidaturaRowViewModel(this Candidatura candidatura, Dictionary <int, List <Bitacora> > bitacorasRevertibles) { var entrevistadorNombre = string.Empty; int?entrevistadorId = null; var agendada = new DateTime?(); var ofertaNombre = String.Empty; var nivelIngles = "N/A"; foreach (var cIdioma in candidatura.Candidato.CandidatoIdiomas) { if (cIdioma.IdiomaId == 15) { nivelIngles = cIdioma.NivelIdioma.Nombre; } } var ofer = convertToOferta(candidatura); if (ofer != null) { ofertaNombre = ofer.Oferta; } var tupla = GetEntrevistadorYAgendada(candidatura, candidatura.EtapaCandidatura.TipoEtapaCandidaturaId); if (tupla != null) { if (tupla.Item1 != null) { entrevistadorNombre = tupla.Item1.Nombre; entrevistadorId = tupla.Item1.UsuarioId; } agendada = (tupla.Item2.HasValue) ? (tupla.Item2): null; } var listaBitacorasRevertibles = new List <Bitacora>(); if (bitacorasRevertibles.ContainsKey(candidatura.CandidaturaId)) { listaBitacorasRevertibles = bitacorasRevertibles[candidatura.CandidaturaId]; } var candidaturaRowViewModel = new CandidaturaRowViewModel() { CandidaturaId = candidatura.CandidaturaId, Estado = candidatura.EstadoCandidatura.EstadoCandidatura, Etapa = candidatura.EtapaCandidatura.EtapaCandidatura, Candidato = candidatura.Candidato.Nombre + ' ' + candidatura.Candidato.Apellidos, Oferta = ofertaNombre, OrigenCvId = candidatura.OrigenCvId, FuenteReclutamientoId = candidatura.FuenteReclutamientoId, Entrevistador = entrevistadorNombre, EntrevistadorId = entrevistadorId, Agendada = (agendada.HasValue) ? agendada.Value : new DateTime(), CandidatoId = candidatura.CandidatoId, EstadoId = candidatura.EstadoCandidaturaId, EtapaId = candidatura.EtapaCandidaturaId, TipoTecnologiaId = candidatura.TipoTecnologiaId, Modulo = (candidatura.ModuloId.HasValue) ? candidatura.TipoModulo.Nombre : "", CVAvailable = ((candidatura.CV != null && candidatura.UrlCV == null) || (candidatura.CV == null && candidatura.UrlCV != null)), Centro = candidatura.Usuario.CentroId != null ? candidatura.Usuario.Centro.Nombre : string.Empty, //GeneradoCartaOferta = candidatura.CartaOfertas.FirstOrDefault() != null && candidatura.CartaOfertas.FirstOrDefault().CartaOfertaGenerada != null, GeneradoCartaOferta = candidatura.EtapaCandidatura.TipoEtapaCandidaturaId > (int)TipoEtapaCandidaturaEnum.AgendarEntrevistas && candidatura.EtapaCandidatura.TipoEtapaCandidaturaId != (int)TipoEtapaCandidaturaEnum.Inicio && candidatura.EtapaCandidatura.TipoEtapaCandidaturaId != (int)TipoEtapaCandidaturaEnum.FiltradoTelefonico && candidatura.EtapaCandidatura.TipoEtapaCandidaturaId != (int)TipoEtapaCandidaturaEnum.FeedbackPrimeraEntrevista, PuedeRetroceder = listaBitacorasRevertibles.Any(), FiltradorId = candidatura.FiltradorId, SubEntrevistadoresString = "", NumeroDeEntrevistas = 0, NivelIdioma = nivelIngles, EmailsSeguimiento = candidatura.EmailsSeguimiento, UbicacionCandidato = candidatura.UbicacionCandidato }; if (candidatura.NumeroDeEntrevistas != null) { candidaturaRowViewModel.NumeroDeEntrevistas = (int)candidatura.NumeroDeEntrevistas; } if (candidatura.EstadoCandidaturaId == (int)TipoEstadoCandidaturaEnum.Entrevista) { var primeraEntrevista = (from entrevista in candidatura.Entrevistas where entrevista.TipoEntrevistaId == 1 && entrevista.IsActivo select entrevista).ToList(); foreach (var entrevista in primeraEntrevista) { foreach (var subEntrevista in entrevista.SubEntrevista) { candidaturaRowViewModel.SubEntrevistadoresString = string.Concat(candidaturaRowViewModel.SubEntrevistadoresString, subEntrevista.EntrevistadorId, ","); } } candidaturaRowViewModel.SubEntrevistadoresString = (candidaturaRowViewModel.SubEntrevistadoresString.Length > 0) ? candidaturaRowViewModel.SubEntrevistadoresString.Remove(candidaturaRowViewModel.SubEntrevistadoresString.Length - 1) : candidaturaRowViewModel.SubEntrevistadoresString; } if (candidatura.EstadoCandidaturaId == (int)TipoEstadoCandidaturaEnum.SegundaEntrevista) { var segundaEntrevista = (from entrevista in candidatura.Entrevistas where entrevista.TipoEntrevistaId == 2 && entrevista.IsActivo select entrevista).ToList(); foreach (var entrevista in segundaEntrevista) { foreach (var subEntrevista in entrevista.SubEntrevista) { candidaturaRowViewModel.SubEntrevistadoresString = string.Concat(candidaturaRowViewModel.SubEntrevistadoresString, subEntrevista.EntrevistadorId, ","); } } candidaturaRowViewModel.SubEntrevistadoresString = (candidaturaRowViewModel.SubEntrevistadoresString.Length > 0) ? candidaturaRowViewModel.SubEntrevistadoresString.Remove(candidaturaRowViewModel.SubEntrevistadoresString.Length - 1) : candidaturaRowViewModel.SubEntrevistadoresString; } if (candidatura.Categoria != null) { candidaturaRowViewModel.Perfil = candidatura.Categoria.Nombre; } candidaturaRowViewModel.TipoTecnologia = candidatura.TipoTecnologia == null ? null : (candidatura.TipoTecnologia.Nombre ?? null); if (candidaturaRowViewModel.OrigenCvId != null) { candidaturaRowViewModel.OrigenCv = candidatura.OrigenCv.Nombre; } else { candidaturaRowViewModel.OrigenCv = ""; } return(candidaturaRowViewModel); }