Ejemplo n.º 1
0
        private void UpdateDelegatingHandlers(OcelotRouteDto input, OcelotRoute route)
        {
            if (input.DelegatingHandlers == null)
            {
                input.DelegatingHandlers = null;
                return;
            }

            foreach (var delegating in input.DelegatingHandlers)
            {
                var existing = route.FindDelegatingHandler(delegating);
                if (existing == null)
                {
                    route.AddDelegatingHandler(delegating);
                }
            }

            //TODO Copied with ToList to avoid modification of the collection in the for loop
            foreach (var delegating in route.DelegatingHandlers.ToList())
            {
                if (!input.DelegatingHandlers.Any(c => delegating.Equals(route.GlobalConfigurationId, route.Name, c)))
                {
                    route.RemoveDelegatingHandlers(delegating.Delegating);
                }
            }
        }
Ejemplo n.º 2
0
        public List <RouteDelegatingHandler> Resolve(OcelotRouteDto source, OcelotRoute destination, List <RouteDelegatingHandler> destMember, ResolutionContext context)
        {
            if (source == null || source.DelegatingHandlers == null)
            {
                return(null);
            }
            foreach (var item in source.DelegatingHandlers)
            {
                destination.AddDelegatingHandler(item);
            }

            return(destination.DelegatingHandlers);
        }