//public async Task<IActionResult> Edit(int id, [Bind("Id,OrderId,CustomerId,EmployeeId,OrderDate,RequiredDate,ShippedDate,ShipVia,Freight,ShipName,ShipAddress,ShipCity,ShipRegion,ShipPostalCode,ShipCountry")] Orders orders) public async Task <IActionResult> Edit(int orderId, [FromForm] OrdersForUpdate order, IFormCollection formCollection) { if (orderId != order.OrderId) { return(NotFound()); } if (ModelState.IsValid) { try { order.OrderDetails = Utilities.GetOrderDetails(orderId, formCollection); await _serviceOrders.UpdateOrder(order); } catch (DbUpdateConcurrencyException) { if (await OrderExists(order.OrderId) == false) { return(NotFound()); } else { throw; } } //return RedirectToAction(nameof(Index)); return(RedirectToAction("Details", new { orderId = orderId })); } //ViewData["EmployeeId"] = new SelectList(_context.Employees, "Id", "Id", orders.EmployeeId); return(View(order)); }
public async Task <ActionResult> PutOrder(int customerID, int orderID, [FromBody] OrdersForUpdate order) { _orm.OpenConn(); if (!await _orm.CustomerExist(customerID)) { return(NotFound()); } var orderFromDB = await _orm.GetOrderById(orderID); if (orderFromDB == 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(order, orderFromDB); if (await _orm.UpdateOrder(orderFromDB) == 0) { return(BadRequest()); } await _orm.CloseConn(); return(NoContent()); }
public async Task UpdateOrder(OrdersForUpdate orderToUpdate) { var serializedOrderToUpdate = JsonConvert.SerializeObject(orderToUpdate); var request = new HttpRequestMessage(HttpMethod.Put, $"{apiRoute}/{orderToUpdate.OrderId}"); request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(mediaType)); request.Content = new StringContent(serializedOrderToUpdate); request.Content.Headers.ContentType = new MediaTypeWithQualityHeaderValue(mediaType); var response = await _httpClient.SendAsync(request); response.EnsureSuccessStatusCode(); }