public List <ProductoEspecificoDto> GetProductosID(JsonProductoDTO json) { var db = new QueryFactory(connection, compiler); List <int> productosID = json.productosID; List <ProductoEspecificoDto> productos = new List <ProductoEspecificoDto>(); for (int x = 0; x < productosID.Count; x++) { var producto = db.Query("Productos").Select("Id", "Nombre", "Descripcion", "PrecioID", "ImagenID", "CategoriaID", "MarcaID", "Stock").Where("Id", "=", productosID[x]).FirstOrDefault <ProductoDto>(); var marca = db.Query("marca").Select("Nombre").Where("Id", "=", producto.MarcaID).FirstOrDefault <Marca>(); var precio = db.Query("precioproducto").Select("Precioventa").Where("Id", "=", producto.PrecioID).FirstOrDefault <PrecioProducto>(); var categoria = db.Query("categorias").Select("Descripcion").Where("Id", "=", producto.CategoriaID).FirstOrDefault <Categoria>(); var imagen = db.Query("imagenproducto").Select("Nombre").Where("Id", "=", producto.ImagenID).FirstOrDefault <ImagenProducto>(); ProductoEspecificoDto productoespecifico = new ProductoEspecificoDto { Nombre = producto.Nombre, Categoria = categoria.Descripcion, Imagen = imagen.Nombre, Marca = marca.Nombre, Precio = precio.Precioventa, Stock = producto.Stock, Descripcion = producto.Descripcion, PublicacionID = json.publicacionesID[x], ProductoID = producto.Id }; productos.Add(productoespecifico); } return(productos); }
public async Task <List <ProductoEspecificoDto> > TraerProductosPublicacionesPanel() { var db = new QueryFactory(conexion, SqlKataCompiler); var Productos = db.Query("Publicaciones"). Select("ProductoID").Get <int>().ToList(); var Publicaciones = db.Query("Publicaciones"). Select("ID").Get <int>().ToList(); List <ProductoEspecificoDto> posts = null; JsonProductoDTO jsonDTO = new JsonProductoDTO(); jsonDTO.productosID = Productos; jsonDTO.publicacionesID = Publicaciones; string url = "https://localhost:44370/api/Producto/ProductosID"; using (var httpClient = new HttpClient()) { var json = Newtonsoft.Json.JsonConvert.SerializeObject(jsonDTO, Formatting.None); var data = new System.Net.Http.StringContent(json, Encoding.UTF8, "application/json"); var result = await httpClient.PostAsync(url, data); string resultado = result.Content.ReadAsStringAsync().Result; posts = JsonConvert.DeserializeObject <List <ProductoEspecificoDto> >(resultado); } return(posts); }
public IActionResult GetProductosID(JsonProductoDTO json) { try { return(new JsonResult(servicio.GetProductosID(json)) { StatusCode = 201 }); } catch (System.Exception e) { return(BadRequest(e.Message)); } }
public async Task <List <ProductoEspecificoDto> > getProductosPublicaciones(int CANTIDAD)//recibir el offset por parametro. { var db = new QueryFactory(conexion, SqlKataCompiler); var Productos = db.Query("Publicaciones"). Select("ProductoID").Limit(6).Offset(CANTIDAD).Get <int>().ToList(); //recordar cambiar la logica y aplicar el limit. //string productosID = ""; //ahora voy a hacer la paginacion de forma correcta. //lo que siempre voy a pedir por parámetor es el offset. var Publicaciones = db.Query("Publicaciones"). Select("ID").Limit(6).Offset(CANTIDAD).Get <int>().ToList(); List <ProductoEspecificoDto> posts = null; //for (int x=0; x<Publicacion.Count; x++) //{ // productosID += Publicacion[x]; //} JsonProductoDTO jsonDTO = new JsonProductoDTO(); jsonDTO.productosID = Productos; jsonDTO.publicacionesID = Publicaciones; //string url = "https://localhost:44370/api/Producto/ProductosID?productosID="+productosID; string url = "https://localhost:44370/api/Producto/ProductosID"; using (var httpClient = new HttpClient()) { var json = Newtonsoft.Json.JsonConvert.SerializeObject(jsonDTO, Formatting.None); var data = new System.Net.Http.StringContent(json, Encoding.UTF8, "application/json"); var result = await httpClient.PostAsync(url, data); string resultado = result.Content.ReadAsStringAsync().Result; posts = JsonConvert.DeserializeObject <List <ProductoEspecificoDto> >(resultado); //string request = await httpClient.GetStringAsync(url); // posts = JsonConvert.DeserializeObject<List<ProductoDTO>>(request); } return(posts); }