예제 #1
0
        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);
        }
예제 #2
0
        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);
        }