public async Task <ActionResult <ProveedorDto> > Delete(int id) { try { var proveedorDto = new ProveedorDto(); var itemOld = await _repository.GetProveedorPorId(id); if (itemOld == null) { proveedorDto.error = $"No existe el proveedor en la base de datos."; return(BadRequest(proveedorDto)); } var ordenes = await _repository.GetOrdenesPorProveedor(id); if (ordenes.Any()) { proveedorDto.error = $"El proveedor no se puede eliminar porque tiene {ordenes.Count()} ordenes relacionadas"; return(BadRequest(proveedorDto)); } _baseRepository.Delete(itemOld); if (await _baseRepository.SaveChangesAsync()) { return(Ok()); } } catch (Exception ex) { return(this.StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } return(BadRequest("An error ocurrs trying to delete a supplier")); }