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); } } }
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); }