示例#1
0
        private IReadOnlyDictionary <string, string> BuildThrottlingProperties(HttpContext context, IRequestInfo info)
        {
            var builder = new ThrottlingPropertiesBuilder();

            if (options.AddConsumerProperty)
            {
                builder.AddConsumer(info?.ClientApplicationIdentity);
            }

            if (options.AddPriorityProperty)
            {
                builder.AddPriority(info?.Priority.ToString());
            }

            if (options.AddMethodProperty)
            {
                builder.AddMethod(context.Request.Method);
            }

            if (options.AddUrlProperty)
            {
                builder.AddUrl(UrlNormalizer.NormalizePath(context.Request.Path));
            }

            foreach (var additionalProperty in options.AdditionalProperties)
            {
                var(propertyName, propertyValue) = additionalProperty(context);
                builder.AddProperty(propertyName, propertyValue);
            }

            return(builder.Build());
        }
示例#2
0
 public void TestSetup()
 => builder = new ThrottlingPropertiesBuilder();