private async Task <bool> restartContainer(string id, ILogger logger)
        {
            var par = new ContainerRestartParameters();

            par.WaitBeforeKillSeconds = 30;
            logger.LogInformation($"Restarting container:{this.SafeName}");
            await this.client.Containers.RestartContainerAsync(id, par, this.cancelTokenSource.Token);

            return(true);
        }
        public Task RestartContainerAsync(string id, ContainerRestartParameters parameters, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new ArgumentNullException(nameof(id));
            }

            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }


            IQueryString queryParameters = new QueryString <ContainerRestartParameters>(parameters);

            // since specified wait timespan can be greater than HttpClient's default, we set the
            // client timeout to infinite and provide a cancellation token.
            return(this._client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Post, $"containers/{id}/restart", queryParameters, null, null, TimeSpan.FromMilliseconds(Timeout.Infinite), cancellationToken));
        }