public string filtrar(string json) { DataContractJsonSerializer serializador = new DataContractJsonSerializer(typeof(FilterParameter)); MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(json)); FilterParameter f = (FilterParameter)serializador.ReadObject(stream); Core.DALC.QueOfrecesEntities ctx = new Core.DALC.QueOfrecesEntities(); int minimo = f.min; int maximo = f.max; string parametro = f.parameter; int IdCategoria = f.IdCategoria; int IdRetail = f.IdRetail; List <Oferta> ofertas = new List <Oferta>(); switch (parametro) { case "SMM": var query1 = from a in ctx.OFERTA where a.PRECIO_DESPUES >= minimo && a.PRECIO_DESPUES <= maximo select new { a }; foreach (var item in query1) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MIN_PRODUCTO; of.FechaOferta = item.a.FECHA_OFERTA; ofertas.Add(of); } return(SerializarOferta(ofertas)); case "SMi": var query2 = from a in ctx.OFERTA where a.PRECIO_DESPUES >= minimo select new { a }; foreach (var item in query2) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MIN_PRODUCTO; of.FechaOferta = item.a.FECHA_OFERTA; ofertas.Add(of); } return(SerializarOferta(ofertas)); case "TODO": var query3 = from a in ctx.OFERTA join c in ctx.OFERTA_HAS_SUCURSAL on a.ID_OFERTA equals c.OFERTA_ID join b in ctx.SUCURSALES on c.SUCURSAL_ID equals b.ID_SUCURSAL where b.RETAIL_ID == IdRetail && a.PRECIO_DESPUES >= minimo && a.PRECIO_DESPUES <= maximo && a.CATEGORIA_OFERTA_ID == IdCategoria select new { a }; foreach (var item in query3) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MIN_PRODUCTO; of.FechaOferta = item.a.FECHA_OFERTA; ofertas.Add(of); } return(SerializarOferta(ofertas)); case "SCAT": var query4 = from a in ctx.OFERTA where a.CATEGORIA_OFERTA_ID == IdCategoria select new { a }; foreach (var item in query4) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MIN_PRODUCTO; of.FechaOferta = item.a.FECHA_OFERTA; ofertas.Add(of); } return(SerializarOferta(ofertas)); case "SRET": var query5 = from a in ctx.OFERTA join c in ctx.OFERTA_HAS_SUCURSAL on a.ID_OFERTA equals c.OFERTA_ID join b in ctx.SUCURSALES on c.SUCURSAL_ID equals b.ID_SUCURSAL where b.RETAIL_ID == IdRetail select new { a }; foreach (var item in query5) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MIN_PRODUCTO; of.FechaOferta = item.a.FECHA_OFERTA; ofertas.Add(of); } return(SerializarOferta(ofertas)); case "SCATRET": var query6 = from a in ctx.OFERTA join c in ctx.OFERTA_HAS_SUCURSAL on a.ID_OFERTA equals c.OFERTA_ID join b in ctx.SUCURSALES on c.SUCURSAL_ID equals b.ID_SUCURSAL where b.RETAIL_ID == IdRetail && a.CATEGORIA_OFERTA_ID == IdCategoria select new { a }; foreach (var item in query6) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MIN_PRODUCTO; of.FechaOferta = item.a.FECHA_OFERTA; ofertas.Add(of); } return(SerializarOferta(ofertas)); case "SCARETMAX": var query7 = from a in ctx.OFERTA join c in ctx.OFERTA_HAS_SUCURSAL on a.ID_OFERTA equals c.OFERTA_ID join b in ctx.SUCURSALES on c.SUCURSAL_ID equals b.ID_SUCURSAL where b.RETAIL_ID == IdRetail && a.PRECIO_DESPUES <= maximo && a.CATEGORIA_OFERTA_ID == IdCategoria select new { a }; foreach (var item in query7) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MIN_PRODUCTO; of.FechaOferta = item.a.FECHA_OFERTA; ofertas.Add(of); } return(SerializarOferta(ofertas)); case "SCARETMIN": var query8 = from a in ctx.OFERTA join c in ctx.OFERTA_HAS_SUCURSAL on a.ID_OFERTA equals c.OFERTA_ID join b in ctx.SUCURSALES on c.SUCURSAL_ID equals b.ID_SUCURSAL where b.RETAIL_ID == IdRetail && a.PRECIO_DESPUES >= minimo && a.CATEGORIA_OFERTA_ID == IdCategoria select new { a }; foreach (var item in query8) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MIN_PRODUCTO; of.FechaOferta = item.a.FECHA_OFERTA; ofertas.Add(of); } return(SerializarOferta(ofertas)); case "SCAMAX": var query9 = from a in ctx.OFERTA join c in ctx.OFERTA_HAS_SUCURSAL on a.ID_OFERTA equals c.OFERTA_ID join b in ctx.SUCURSALES on c.SUCURSAL_ID equals b.ID_SUCURSAL where a.PRECIO_DESPUES <= maximo && a.CATEGORIA_OFERTA_ID == IdCategoria select new { a }; foreach (var item in query9) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MIN_PRODUCTO; of.FechaOferta = item.a.FECHA_OFERTA; ofertas.Add(of); } return(SerializarOferta(ofertas)); case "SCAMIN": var query10 = from a in ctx.OFERTA join c in ctx.OFERTA_HAS_SUCURSAL on a.ID_OFERTA equals c.OFERTA_ID join b in ctx.SUCURSALES on c.SUCURSAL_ID equals b.ID_SUCURSAL where a.PRECIO_DESPUES >= minimo && a.CATEGORIA_OFERTA_ID == IdCategoria select new { a }; foreach (var item in query10) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MIN_PRODUCTO; of.FechaOferta = item.a.FECHA_OFERTA; ofertas.Add(of); } return(SerializarOferta(ofertas)); case "SRETMAX": var query11 = from a in ctx.OFERTA join c in ctx.OFERTA_HAS_SUCURSAL on a.ID_OFERTA equals c.OFERTA_ID join b in ctx.SUCURSALES on c.SUCURSAL_ID equals b.ID_SUCURSAL where a.PRECIO_DESPUES <= maximo && b.RETAIL_ID == IdRetail select new { a }; foreach (var item in query11) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MIN_PRODUCTO; of.FechaOferta = item.a.FECHA_OFERTA; ofertas.Add(of); } return(SerializarOferta(ofertas)); case "SRETMIN": var query12 = from a in ctx.OFERTA join c in ctx.OFERTA_HAS_SUCURSAL on a.ID_OFERTA equals c.OFERTA_ID join b in ctx.SUCURSALES on c.SUCURSAL_ID equals b.ID_SUCURSAL where a.PRECIO_DESPUES >= minimo && b.RETAIL_ID == IdRetail select new { a }; foreach (var item in query12) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MIN_PRODUCTO; of.FechaOferta = item.a.FECHA_OFERTA; ofertas.Add(of); } return(SerializarOferta(ofertas)); default: return("[]"); } }
public string Filtrar(string json) { Core.DALC.QueOfrecesEntities ctx = new Core.DALC.QueOfrecesEntities(); DataContractJsonSerializer serializador = new DataContractJsonSerializer(typeof(FilterParameter)); MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(json)); FilterParameter f = (FilterParameter)serializador.ReadObject(stream); List <Oferta> ofertaLista = new List <Oferta>(); switch (f.parameter) { case "PRECIOMENORMAYOR": var result = from a in ctx.OFERTA where a.ESTADO_OFERTA == "1" orderby a.PRECIO_DESPUES ascending select new { a }; foreach (var item in result) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MAX_PRODUCTO; of.EstadoOferta = Convert.ToChar(item.a.ESTADO_OFERTA); of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.FechaOferta = item.a.FECHA_OFERTA; of.IdSucursal = (int)item.a.SUCURSALES_ID; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.Selec = false; ofertaLista.Add(of); } break; case "PRECIOMAYORMENOR": var result2 = from a in ctx.OFERTA where a.ESTADO_OFERTA == "1" orderby a.PRECIO_DESPUES descending select new { a }; foreach (var item in result2) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MAX_PRODUCTO; of.EstadoOferta = Convert.ToChar(item.a.ESTADO_OFERTA); of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.FechaOferta = item.a.FECHA_OFERTA; of.IdSucursal = (int)item.a.SUCURSALES_ID; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.Selec = false; ofertaLista.Add(of); } break; case "RECIENTES": var result3 = from a in ctx.OFERTA where a.ESTADO_OFERTA == "1" orderby a.FECHA_OFERTA descending select new { a }; foreach (var item in result3) { Oferta of = new Oferta(); of.IdOferta = (int)item.a.ID_OFERTA; of.ImagenOferta = item.a.IMAGEN_OFERTA; of.MinProductos = (int)item.a.MIN_PRODUCTO; of.MaxProductos = (int)item.a.MAX_PRODUCTO; of.EstadoOferta = Convert.ToChar(item.a.ESTADO_OFERTA); of.PrecioOferta = (int)item.a.PRECIO_DESPUES; of.PrecioAntes = (int)item.a.PRECIO_ANTES; of.FechaOferta = item.a.FECHA_OFERTA; of.IdSucursal = (int)item.a.SUCURSALES_ID; of.CategoriaIdOferta = (int)item.a.CATEGORIA_OFERTA_ID; of.Nombre = item.a.NOMBRE; of.Descripcion = item.a.DESCRIPCION; of.Selec = false; ofertaLista.Add(of); } break; } return(SerializarOferta(ofertaLista)); }