[HttpPost("seleccionar/{id}")] //Como mercado selecciono un producto y le agrego precio y stock public async Task <ActionResult> SeleccionarProductoMercado(int id, ProdMercado prodmercado) { var productoActionResult = await Get(id); //consigo el producto dando como parámetro su id(Action Result) if (productoActionResult.Result is NotFoundResult) { return(NotFound()); } // Si no se encuentra el producto retorno NoEncontrado var producto = productoActionResult.Value; //Consigo el vallor del ActionResult dando como resultado el producto var mercado = await context.Mercados.FirstAsync(x => x.Email == HttpContext.User.Identity.Name); var existeProdMer = context.ProductosMercados.Any(x => x.MercadoId == mercado.Id && x.ProductoId == id); if (existeProdMer) //Solo actualizo { var BDprodMer = await context.ProductosMercados.FirstAsync(x => x.MercadoId == mercado.Id && x.ProductoId == id); context.ProductosMercados.Attach(BDprodMer); BDprodMer.Precio = prodmercado.precio; BDprodMer.Stock = prodmercado.stock; await context.SaveChangesAsync(); return(NoContent()); } else { //Creo un nuevo prodMercado var productoMercado = new ProductoMercado { Mercado = mercado, MercadoId = mercado.Id, Precio = prodmercado.precio, Stock = prodmercado.stock, ProductoId = producto.Producto.Id, Producto = producto.Producto }; context.Add(productoMercado); await context.SaveChangesAsync(); return(NoContent()); } }
public async Task <ActionResult <ProdMercado> > GetProductoMercado(int id) { var mercado = await context.Mercados .FirstOrDefaultAsync(x => x.Email == HttpContext.User.Identity.Name); var existe = await context.ProductosMercados .AnyAsync(x => x.ProductoId == id && x.MercadoId == mercado.Id); // Verificamos si existe dicho producto if (!existe) { return(BadRequest()); } //Si no existe retorno NotFound() var productoMercado = await context.ProductosMercados .FirstOrDefaultAsync(x => x.ProductoId == id && x.MercadoId == mercado.Id); var prodMercadoPriceStock = new ProdMercado { precio = productoMercado.Precio, stock = productoMercado.Stock }; return(prodMercadoPriceStock); }