public ActionResult DeleteConfirmed(long id) { BusquedaUsuarioPostulante busquedaUsuarioPostulante = busquedaService.GetById(id); busquedaService.RemoveEntity(busquedaUsuarioPostulante); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "Id,SueldoMinimo,SueldoMinimoPrioridad,TipoRelacionDeTrabajo,TipoRelacionDeTrabajoPrioridad,HorasTrabajo,HorasTrabajoPrioridad")] BusquedaUsuarioPostulante busquedaUsuarioPostulante) { if (ModelState.IsValid) { busquedaService.UpdateEntity(busquedaUsuarioPostulante); return(RedirectToAction("Index", "Home")); } return(View(busquedaUsuarioPostulante)); }
// GET: BusquedaUsuarioPostulantes/Edit/5 public ActionResult Edit() { string userid = this.User.Identity.GetUserId(); UsuarioEmpleado usuario = usuariosService.GetAll().FirstOrDefault(x => x.Id == userid); BusquedaUsuarioPostulante busquedaUsuarioPostulante = usuario.Busqueda; if (busquedaUsuarioPostulante == null) { return(RedirectToAction("Create")); } return(View(busquedaUsuarioPostulante)); }
// GET: BusquedaUsuarioPostulantes/Delete/5 public ActionResult Delete(long?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } BusquedaUsuarioPostulante busquedaUsuarioPostulante = db.BusquedaUsuarioPostulantes.Find(id); if (busquedaUsuarioPostulante == null) { return(HttpNotFound()); } return(View(busquedaUsuarioPostulante)); }
public ActionResult Create([Bind(Include = "Id,SueldoMinimo,SueldoMinimoPrioridad,TipoRelacionDeTrabajo,TipoRelacionDeTrabajoPrioridad,HorasTrabajo,HorasTrabajoPrioridad")] BusquedaUsuarioPostulante busquedaUsuarioPostulante) { if (ModelState.IsValid) { string userId = this.User.Identity.GetUserId(); UsuarioEmpleado usuario = usuariosService.GetAll().FirstOrDefault(x => x.Id == userId); usuario.Busqueda = busquedaUsuarioPostulante; usuariosService.UpdateEntity(usuario); //busquedaService.AddEntity(busquedaUsuarioPostulante); return(RedirectToAction("Index", "Home")); } return(View(busquedaUsuarioPostulante)); }
// GET: BusquedaUsuarioPostulantes/Details/5 public ActionResult Details(long?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } BusquedaUsuarioPostulante busquedaUsuarioPostulante = busquedaService.GetById(id.Value); if (busquedaUsuarioPostulante == null) { return(HttpNotFound()); } return(View(busquedaUsuarioPostulante)); }
/// <summary> /// Genera listado de coincidencias desde una instancia de un UsuarioEmpleadoOrigen /// </summary> /// <param name="usuarioEmpleadoOrigen"></param> /// <param name="usuariosEmpleado"></param> /// <returns>Listado de coincidencias</returns> public List <Coincidencia> GenerarListadoCoincidencias(UsuarioEmpleado usuarioEmpleadoOrigen, IQueryable <Aviso> avisos) { List <Coincidencia> listCoincidencias = new List <Coincidencia>(); BusquedaUsuarioPostulante busqueda = usuarioEmpleadoOrigen.Busqueda; if (busqueda != null) { //Inicialización DateTime fechaActual = DateTime.Now; CalculadorDePorcentajeEmpleado calculadorDePorcentaje = new CalculadorDePorcentajeEmpleado(usuarioEmpleadoOrigen); List <Aviso> avisosAprobados = usuarioEmpleadoOrigen.AvisosAprobados; List <Aviso> avisosDesaprobados = usuarioEmpleadoOrigen.AvisosDesaprobados; //Se filtran todos los avisos que cumplan con los parámetros excluyentes List <Aviso> listCandidatos = avisos.Where(aviso => aviso.FechaInicio <= fechaActual && (aviso.FechaFin.HasValue ? aviso.FechaFin >= fechaActual : true) && (busqueda.HorasTrabajoPrioridad == Prioridad.Excluyente ? busqueda.HorasTrabajo == aviso.HorasTrabajo : true) && (busqueda.SueldoMinimoPrioridad == Prioridad.Excluyente ? busqueda.SueldoMinimo <= aviso.SueldoOfrecido : true) && (busqueda.TipoRelacionDeTrabajoPrioridad == Prioridad.Excluyente ? busqueda.TipoRelacionDeTrabajo == aviso.TipoRelacionDeTrabajo : true)) .ToList(); listCandidatos = listCandidatos.Where(aviso => !avisosAprobados.Any(avisoAprobado => avisoAprobado.Id == aviso.Id) && !avisosDesaprobados.Any(avisoDesaprobado => avisoDesaprobado.Id == aviso.Id) && aviso.AptitudesBuscadas.Where(x => x.Prioridad == Prioridad.Excluyente).Select(x => x.Aptitud).Intersect(usuarioEmpleadoOrigen.Aptitud).Count() == aviso.AptitudesBuscadas.Where(x => x.Prioridad == Prioridad.Excluyente).Count()) .ToList(); //Se generan las coincidencias foreach (var aviso in listCandidatos) { Coincidencia coincidencia = calculadorDePorcentaje.GenerarCoincidencia(aviso); listCoincidencias.Add(coincidencia); } //Se ordenan las coincidencias listCoincidencias = listCoincidencias.OrderByDescending(x => x.Porcentaje).ToList(); } return(listCoincidencias); }