public async Task <List <ProductoResponse> > GetProducts([FromBody] DataListRequest request) { return(await useCase.GetProducts(request)); }
public async Task <List <ProductoResponse> > GetProducts(DataListRequest request) { List <ProductoResponse> response = new List <ProductoResponse>(); try { //IList<TblProductos> usr = await db.Productos.FromSqlRaw("SP_ObtenerProductos").ToListAsync(); IQueryable <TblProductos> query = db.Productos; if (request.Filtros != null) { foreach (OpcionBusqueda opcionBusqueda in request.Filtros) { if (opcionBusqueda.Clave == "SKU") { query = query.Where(f => f.SKU == opcionBusqueda.Valor); } else if (opcionBusqueda.Clave == "Nombre") { switch (opcionBusqueda.PatronOperador) { case PatronBusqueda.Equals: query = query.Where(f => f.nombre == opcionBusqueda.Valor); break; case PatronBusqueda.StartsWith: query = query.Where(f => f.nombre.StartsWith(opcionBusqueda.Valor)); break; case PatronBusqueda.EndsWith: query = query.Where(f => f.nombre.EndsWith(opcionBusqueda.Valor)); break; case PatronBusqueda.Contains: query = query.Where(f => f.nombre.Contains(opcionBusqueda.Valor)); break; default: break; } } else if (opcionBusqueda.Clave == "Precio") { if (opcionBusqueda.Operador == "<=") { query = query.Where(f => f.precio <= Convert.ToDecimal(opcionBusqueda.Valor)); } else if (opcionBusqueda.Operador == "<") { query = query.Where(f => f.precio < Convert.ToDecimal(opcionBusqueda.Valor)); } if (opcionBusqueda.Operador == ">=") { query = query.Where(f => f.precio >= Convert.ToDecimal(opcionBusqueda.Valor)); } else if (opcionBusqueda.Operador == ">") { query = query.Where(f => f.precio > Convert.ToDecimal(opcionBusqueda.Valor)); } } } } IList <TblProductos> usr = await query.Skip((request.Pagina.Value - 1) *request.ElementosPorPagina.Value).Take(request.ElementosPorPagina.Value).ToListAsync(); if (usr != null && usr.Count != 0) { response = map.Map <List <ProductoResponse> >(usr.ToList()); } return(response); } catch (Exception ex) { Console.WriteLine($"{ex.Message} {ex.InnerException?.Message}"); throw; } }
public async Task <List <ProductoResponse> > GetProducts(DataListRequest request) => await repository.GetProducts(request);