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);
            }
        }
Beispiel #2
0
        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));
            }
        }