public async Task <DeliveryDTO> UpdateAsync(DeliveryPutRequest model, ApiDbContext apiDbContext) { try { var delivery = await apiDbContext.Deliveries.FindAsync(model.Id); if (delivery == null) { throw new Exception($"No existe la entrega con id {model.Id}"); } if (delivery.IsCompleted) { throw new Exception($"No se puede modificar la entrega. Ya ha sido completada."); } delivery.Address = model.Address; delivery.Number = model.Number; delivery.City = model.City; delivery.PostCode = model.PostCode; delivery.Region = model.Region; await apiDbContext.SaveChangesAsync(); return(ModelToDTO(delivery)); } catch (Exception e) { throw new Exception(e.Message); } }
public async Task <IActionResult> Update(DeliveryPutRequest model) { try { if (!ModelState.IsValid) { throw new Exception("Petición de actualización inválida"); } return(Ok(await _deliveryService.UpdateAsync(model, _apiDbContext))); } catch (Exception e) { return(StatusCode(500, e.Message)); } }