public async Task <Result> Create(Action <ScopedParameterCreateAction> action, CancellationToken cancellationToken = default) { cancellationToken.RequestCanceled(); var impl = new ScopedParameterCreateActionImpl(); action(impl); DefinedScopedParameter definition = impl.Definition.Value; Debug.Assert(definition != null); if (string.IsNullOrWhiteSpace(definition.ParameterName)) { return(new FaultedResult(new List <Error> { new ErrorImpl("The name of the parameter is missing.") })); } string url = $"api/parameters/{definition.Component}/{SanitizeVirtualHostName(definition.VirtualHost)}/{definition.ParameterName}"; Result result = await Put(url, definition, cancellationToken); return(result); }
public async Task <Result> CreateAsync(Action <ScopedParameterCreateAction> action, CancellationToken cancellationToken = new CancellationToken()) { cancellationToken.RequestCanceled(LogInfo); var impl = new ScopedParameterCreateActionImpl(); action(impl); DefinedScopedParameter definition = impl.Definition.Value; if (string.IsNullOrWhiteSpace(definition.ParameterName)) { throw new ParameterMissingException("The name of the parameter is missing."); } string url = $"api/parameters/{definition.Component}/{definition.VirtualHost.SanitizeVirtualHostName()}/{definition.ParameterName}"; HttpResponseMessage response = await HttpPut(url, definition, cancellationToken); Result result = response.GetResponse(); LogInfo($"Sent request to RabbitMQ server to create a scoped parameter '{definition.ParameterName}'."); return(result); }
public Task <Result> Create <T>(Action <ScopedParameterCreateAction <T> > action, CancellationToken cancellationToken = default) { cancellationToken.RequestCanceled(); var impl = new ScopedParameterCreateActionImpl <T>(); action(impl); impl.Validate(); ScopedParameterDefinition <T> definition = impl.Definition.Value; Debug.Assert(definition != null); string url = $"api/parameters/{definition.Component}/{definition.VirtualHost.ToSanitizedName()}/{definition.ParameterName}"; if (impl.Errors.Value.Any()) { return(Task.FromResult <Result>(new FaultedResult(impl.Errors.Value, new DebugInfoImpl(url, definition.ToJsonString(Deserializer.Options))))); } return(Put(url, definition, cancellationToken)); }