private IQueryable <Oferta> FilterString(IDictionary <string, string> customFilter) { var query = _ofertaRepository.GetAll(); query = query.Where(x => x.IsActivo); if (customFilter.ContainsKey("Nombre") && (customFilter["Nombre"] != string.Empty)) { var nombre = customFilter["Nombre"]; query = query.Where(x => x.Nombre.Contains(nombre)); } if (customFilter.ContainsKey("Descripcion") && (customFilter["Descripcion"] != string.Empty)) { var descripcion = customFilter["Descripcion"]; query = query.Where(x => x.Descripcion.Contains(descripcion)); } if (customFilter.ContainsKey("Estado") && (customFilter["Estado"] != string.Empty)) { var estadoOfertaId = Convert.ToInt32(customFilter["Estado"]); query = query.Where(x => x.EstadoOfertaId == estadoOfertaId); } if (customFilter.ContainsKey("PublicadaDesde") && (customFilter["PublicadaDesde"] != string.Empty)) { var fechaPublicacion = Convert.ToDateTime(customFilter["PublicadaDesde"]); query = query.Where(x => x.FechaPublicacion >= fechaPublicacion); } if (customFilter.ContainsKey("PublicadaHasta") && (customFilter["PublicadaHasta"] != string.Empty)) { var fechaPublicacion = Convert.ToDateTime(customFilter["PublicadaHasta"]); query = query.Where(x => x.FechaPublicacion <= fechaPublicacion); } //se filtra por el centro del usuario logado salvo cuando hay un Centro de busqueda que buscaria los del centro en cuestion (CentroSearch) if (customFilter.ContainsKey("CentroUsuarioId") && (customFilter["CentroUsuarioId"] != string.Empty || customFilter.ContainsKey("CentroSearch"))) { if (customFilter.ContainsKey("CentroSearch")) { if (customFilter["CentroSearch"] != string.Empty) { var CentroUsuarioId = Convert.ToInt32(customFilter["CentroSearch"]); query = query.Where(x => x.Usuario.Centro.CentroId == CentroUsuarioId); } else { if (customFilter["CentroUsuarioId"] != string.Empty) { var CentroUsuarioId = Convert.ToInt32(customFilter["CentroUsuarioId"]); query = query.Where(x => x.Usuario.Centro.CentroId == CentroUsuarioId); } } } else { var CentroUsuarioId = Convert.ToInt32(customFilter["CentroUsuarioId"]); query = query.Where(x => x.Usuario.Centro.CentroId == CentroUsuarioId); } } if (customFilter.ContainsKey("CentroSearch") && !customFilter.ContainsKey("CentroUsuarioId") && (customFilter["CentroSearch"] != string.Empty)) { var CentroUsuarioId = Convert.ToInt32(customFilter["CentroSearch"]); query = query.Where(x => x.Usuario.Centro.CentroId == CentroUsuarioId); } return(query); }
public async Task <ActionResult <List <OfertaDTO> > > Get() { var ofertasDTO = mapper.Map <List <OfertaDTO> >(await repository.GetAll()); return(Ok(ofertasDTO)); }