Esempio n. 1
0
        public Task <ServerResponse> New(Action <PolicyTarget> policy, Action <PolicyCharacteristics> characteristics,
                                         Action <VirtualHostTarget> virtualHost,
                                         CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var characteristicsImpl = new PolicyCharacteristicsImpl();

            characteristics(characteristicsImpl);

            var policyTargetImpl = new PolicyTargetImpl();

            policy(policyTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            LogInfo(
                string.Format("Sent request to RabbitMQ server to create a new policy '{0}' on virtual host '{1}'.",
                              policyTargetImpl.Target, virtualHostTargetImpl.Target));

            string url = string.Format("api/policies/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       policyTargetImpl.Target);

            return(base.Put(url, characteristicsImpl, cancellationToken).Response <ServerResponse>(cancellationToken));
        }
Esempio n. 2
0
        public Task<ServerResponse> New(string policy, Action<VirtualHostTarget> target,
                                        Action<PolicyCharacteristics> characteristics,
                                        CancellationToken cancellationToken = new CancellationToken())
        {
            cancellationToken.RequestCanceled(LogInfo);

            var characteristicsImpl = new PolicyCharacteristicsImpl();
            characteristics(characteristicsImpl);

            var targetImpl = new VirtualHostTargetImpl();
            target(targetImpl);

            LogInfo(
                string.Format("Sent request to RabbitMQ server to create a new policy '{0}' on virtual host '{1}'.",
                              policy, targetImpl.VirtualHost));

            string url = string.Format("api/policies/{0}/{1}", targetImpl.VirtualHost.SanitizeVirtualHostName(), policy);

            return base.Put(url, characteristicsImpl, cancellationToken).Response<ServerResponse>(cancellationToken);
        }