Пример #1
0
        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);
        }
Пример #2
0
        public async Task <ActionResult <List <OfertaDTO> > > Get()
        {
            var ofertasDTO = mapper.Map <List <OfertaDTO> >(await repository.GetAll());

            return(Ok(ofertasDTO));
        }