internal DownloadCVResponse GetLastCVCandidaturaByCandidatoId(ICandidaturaRepository candidaturaRepository, int candidatoId) { var response = new DownloadCVResponse(); try { var candidaturaId = candidaturaRepository.GetByCriteria(x => x.CandidatoId == candidatoId).Max(t => t.CandidaturaId); var candidatura = candidaturaRepository.GetOne(x => x.CandidaturaId == candidaturaId); response.IsValid = true; response.UrlCV = candidatura.UrlCV; response.NombreCV = candidatura.NombreCV; response.CandidaturaId = candidatura.CandidaturaId; } catch (Exception ex) { response.IsValid = false; response.ErrorMessage = ex.Message; } return(response); }
private FiltroBitacoraModels GenerateViewElementsIndex(FiltroBitacoraModels model) { int CandidaturaId = Convert.ToInt32(_sesionBitacoras.Get <int>("CandidaturaId").ToString()); model.CentroIdUsuarioLogueado = HttpContext.Session["CentroIdUsuario"] != null ? HttpContext.Session["CentroIdUsuario"].ToString() : string.Empty; var candidatura = _candidaturaRepository.GetByCriteria(x => x.CandidaturaId == CandidaturaId).FirstOrDefault(); if (candidatura != null) { model.CandidaturaId = candidatura.CandidaturaId; model.EstadoCandidatura = candidatura.EstadoCandidatura != null ? candidatura.EstadoCandidatura.EstadoCandidatura : string.Empty; model.EtapaCandidatura = candidatura.EtapaCandidatura != null ? candidatura.EtapaCandidatura.EtapaCandidatura : string.Empty; model.Perfil = candidatura.Categoria != null ? candidatura.Categoria.Nombre : string.Empty; model.Entrevistador = candidatura.Entrevistas.Count > 0 ? candidatura.Entrevistas.FirstOrDefault().Entrevistador.Nombre : string.Empty; model.NombreCandidato = string.Concat(candidatura.Candidato.Nombre, " ", candidatura.Candidato.Apellidos); model.TipoTecnologia = candidatura.TipoTecnologia != null ? candidatura.TipoTecnologia.Nombre : string.Empty; model.CentroUsuarioCreacion = candidatura.Usuario.Centro == null ? string.Empty : candidatura.Usuario.Centro.Nombre; } return(model); }
private InfoEntrevistadorViewModel GetInfoEntrevistador(string UserName, int?CentroIdUsuario) { var response = new InfoEntrevistadorViewModel(); try { var ListEntrevistas = _entrevistaRepository.GetByCriteria(x => x.Entrevistador.UserName == UserName && x.Candidatura.IsActivo && (!(CentroIdUsuario.HasValue) || x.Candidatura.Usuario.CentroId == CentroIdUsuario.Value) && x.Candidatura.EstadoCandidaturaId != (int)TipoEstadoCandidaturaEnum.Descartado && x.Candidatura.EstadoCandidaturaId != (int)TipoEstadoCandidaturaEnum.Renuncia && x.Candidatura.EstadoCandidaturaId != (int)TipoEstadoCandidaturaEnum.RechazaOferta).ToList(); var ListSubEntrevistas = new List <SubEntrevista>(); var ListEntrevistasConSubEntrevistas = _entrevistaRepository.GetByCriteria(x => x.SubEntrevista.Any(y => y.Entrevistador.UserName == UserName && y.IsActivo) && x.Candidatura.IsActivo && (!(CentroIdUsuario.HasValue) || x.Candidatura.Usuario.CentroId == CentroIdUsuario.Value) && x.Candidatura.EstadoCandidaturaId != (int)TipoEstadoCandidaturaEnum.Descartado && x.Candidatura.EstadoCandidaturaId != (int)TipoEstadoCandidaturaEnum.Renuncia && x.Candidatura.EstadoCandidaturaId != (int)TipoEstadoCandidaturaEnum.RechazaOferta).ToList(); foreach (var entrevista in ListEntrevistasConSubEntrevistas) { var subEntrevistas = from subEntrevista in entrevista.SubEntrevista where subEntrevista.Entrevistador.UserName == UserName select subEntrevista; foreach (var subEntrevista in subEntrevistas) { if (subEntrevista.IsActivo) { ListSubEntrevistas.Add(subEntrevista); } } } var listaEntrevistasPlanificadas = ListEntrevistas.ConvertToEntrevistasPlanificadasRowViewModel().ToList(); var listaSubEntrevistasPlanificadas = ListSubEntrevistas.ConvertToEntrevistasPlanificadasRowViewModel().ToList(); foreach (var entrevistaPlanificada in listaSubEntrevistasPlanificadas) { listaEntrevistasPlanificadas.Add(entrevistaPlanificada); } response.ListEntrevistasPlanificadasViewModel = listaEntrevistasPlanificadas; _cartaOfertaRepository.GetByCriteria(x => x.Entrevistador.UserName == UserName && x.Candidatura.IsActivo && x.Candidatura.Usuario.CentroId == CentroIdUsuario); var userId = _usuarioRepository.GetOne(x => x.UserName == UserName).UsuarioId; var currentDateTime = DateTime.Now; var aMonthEarlier = currentDateTime.AddMonths(-1); var ListaCandidaturasAFiltrar = _candidaturaRepository.GetByCriteria(x => (x.FiltradorId == userId) && (x.EtapaCandidaturaId == (int)TipoEtapaCandidaturaEnum.FiltradoTecnico) && (x.EstadoCandidaturaId == (int)TipoEstadoCandidaturaEnum.FiltradoPeople) && (x.Created > aMonthEarlier)); response.ListFiltradoPendienteViewModel = ListaCandidaturasAFiltrar.ConvertToFiltradoPendienteViewModelList().ToList(); } catch (Exception) { return(new InfoEntrevistadorViewModel()); } return(response); }
public GetCandidatosQueCumplenPerfilResponse GetCandidatosQueCumplenPerfil(DataTableRequest request) { var response = new GetCandidatosQueCumplenPerfilResponse(); try { bool b = request.CustomFilters.Contains(new KeyValuePair <string, string>("Buscar", "true")); if (b) { var tecnologiaId = Convert.ToInt32(request.CustomFilters["TipoTecnologiaId"]); var perfilId = Convert.ToInt32(request.CustomFilters["TipoPerfilId"]); var centroId = Convert.ToInt32(request.CustomFilters["Centro"]); //establecer los filtros var listaDeCandidaturasQueCumplenElPerfil = _candidaturaRepository.GetByCriteria(x => (x.TipoTecnologiaId == tecnologiaId || x.TipoTecnologiaId == null) && (x.CategoriaId == perfilId || x.CategoriaId == null) && (x.EstadoCandidaturaId != (int)TipoEstadoCandidaturaEnum.Contratado && x.EstadoCandidaturaId != (int)TipoEstadoCandidaturaEnum.Descartado && x.EstadoCandidaturaId != (int)TipoEstadoCandidaturaEnum.KOOferta && x.EstadoCandidaturaId != (int)TipoEstadoCandidaturaEnum.RechazaOferta && x.EstadoCandidaturaId != (int)TipoEstadoCandidaturaEnum.Renuncia && x.EstadoCandidaturaId != (int)TipoEstadoCandidaturaEnum.Recontactado) && x.IsActivo && x.Usuario.CentroId == centroId ).AsQueryable(); var listaCandidatosQueCumplenElPerfil = new List <CandidatoQueCumplePerfilRowViewModel>(); if (request.CustomFilters.ContainsKey("Nombre") && request.CustomFilters["Nombre"] != string.Empty) { string nombre = request.CustomFilters["Nombre"]; listaDeCandidaturasQueCumplenElPerfil = from c in listaDeCandidaturasQueCumplenElPerfil where c.Candidato.Nombre.Contains(nombre) select c; } if (request.CustomFilters.ContainsKey("Apellidos") && request.CustomFilters["Apellidos"] != string.Empty) { string apellidos = request.CustomFilters["Apellidos"]; listaDeCandidaturasQueCumplenElPerfil = from c in listaDeCandidaturasQueCumplenElPerfil where c.Candidato.Apellidos.Contains(apellidos) select c; } foreach (var candidatura in listaDeCandidaturasQueCumplenElPerfil) { if (candidatura.Candidato.IsActivo) { var candidato = CandidatoMapper.ConvertToCandidatoQueCumplePerfilRowViewModel(candidatura.Candidato, candidatura.CandidaturaId); int Id = candidatura.EtapaCandidaturaId; if (Id != 0) { var etapaNombre = (TipoEtapaCandidaturaEnum)Id; candidato.EtapaCandidatura = etapaNombre.ToString(); } else { candidato.EtapaCandidatura = ""; } listaCandidatosQueCumplenElPerfil.Add(candidato); } } var filtered = listaCandidatosQueCumplenElPerfil.AsQueryable().ApplyColumnSettings(request, CandidatoMapper.GetPropertiePath); response.CandidatosQueCumplenPerfilRowViewModel = filtered; response.TotalElementos = listaCandidatosQueCumplenElPerfil.Count; } else { response.CandidatosQueCumplenPerfilRowViewModel = new List <CandidatoQueCumplePerfilRowViewModel>(); response.TotalElementos = 0; } response.IsValid = true; } catch (Exception ex) { response.IsValid = false; response.ErrorMessage = ex.Message; } return(response); }