public async Task <IActionResult> Edit(int productId, [FromForm] ProductsForUpdate product) { if (productId != product.ProductId) { return(NotFound()); } if (ModelState.IsValid) { try { await _serviceProducts.UpdateProduct(product); } catch (DbUpdateConcurrencyException) { if (await ProductsExists(product.ProductId) == false) { return(NotFound()); } else { throw; } } //return RedirectToAction(nameof(Index)); return(RedirectToAction("Details", new { productId = productId })); } //ViewData["CategoryId"] = new SelectList(_context.Categories, "Id", "Id", products.CategoryId); //ViewData["SupplierId"] = new SelectList(_context.Set<Suppliers>(), "Id", "Id", products.SupplierId); return(View(product)); }
public async Task <ActionResult> PutProduct(int productID, [FromBody] ProductsForUpdate product) { _orm.OpenConn(); var productFromDB = await _orm.GetProductById(productID); if (productFromDB == null) { return(NotFound()); } //Map from entity (Source) to nidek (Destination) //Apply Updated fields values to that dto //Map from model (Source) to entity (Destination) //aka. copying values from source to destination _mapper.Map(product, productFromDB); if (await _orm.UpdateProduct(productFromDB) == 0) { return(BadRequest()); } await _orm.CloseConn(); return(NoContent()); }
public async Task UpdateProduct(ProductsForUpdate productToUpdate) { var serializedProductToUpdate = JsonConvert.SerializeObject(productToUpdate); var request = new HttpRequestMessage(HttpMethod.Put, $"{apiRoute}/{productToUpdate.ProductId}"); request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(mediaType)); request.Content = new StringContent(serializedProductToUpdate); request.Content.Headers.ContentType = new MediaTypeWithQualityHeaderValue(mediaType); var response = await _httpClient.SendAsync(request); response.EnsureSuccessStatusCode(); }