protected virtual void ApplyReRouteOptions(ReRoute reRoute, ReRouteDto routeDto) { reRoute.SetDownstreamHeader(routeDto.DownstreamHeaderTransform); reRoute.SetQueriesParamter(routeDto.AddQueriesToRequest); reRoute.SetRequestClaims(routeDto.AddClaimsToRequest); reRoute.SetRequestHeader(routeDto.AddHeadersToRequest); reRoute.SetRouteClaims(routeDto.RouteClaimsRequirement); reRoute.SetUpstreamHeader(routeDto.UpstreamHeaderTransform); reRoute.AuthenticationOptions.ApplyAuthOptions(routeDto.AuthenticationOptions.AuthenticationProviderKey, routeDto.AuthenticationOptions.AllowedScopes); reRoute.CacheOptions.ApplyCacheOption(routeDto.FileCacheOptions.TtlSeconds, routeDto.FileCacheOptions.Region); reRoute.HttpHandlerOptions.ApplyAllowAutoRedirect(routeDto.HttpHandlerOptions.AllowAutoRedirect); reRoute.HttpHandlerOptions.ApplyCookieContainer(routeDto.HttpHandlerOptions.UseCookieContainer); reRoute.HttpHandlerOptions.ApplyHttpProxy(routeDto.HttpHandlerOptions.UseProxy); reRoute.HttpHandlerOptions.ApplyHttpTracing(routeDto.HttpHandlerOptions.UseTracing); reRoute.LoadBalancerOptions.ApplyLoadBalancerOptions(routeDto.LoadBalancerOptions.Type, routeDto.LoadBalancerOptions.Key, routeDto.LoadBalancerOptions.Expiry); reRoute.QoSOptions.ApplyQosOptions(routeDto.QoSOptions.ExceptionsAllowedBeforeBreaking, routeDto.QoSOptions.DurationOfBreak, routeDto.QoSOptions.TimeoutValue); reRoute.RateLimitOptions.ApplyRateLimit(routeDto.RateLimitOptions.EnableRateLimiting); reRoute.RateLimitOptions.SetPeriodTimespan(routeDto.RateLimitOptions.Period, routeDto.RateLimitOptions.PeriodTimespan, routeDto.RateLimitOptions.Limit); reRoute.RateLimitOptions.SetClientWhileList(routeDto.RateLimitOptions.ClientWhitelist); reRoute.SecurityOptions.SetAllowIpList(routeDto.SecurityOptions.IPAllowedList); reRoute.SecurityOptions.SetBlockIpList(routeDto.SecurityOptions.IPBlockedList); }