private static bool FilterByTags(FirewallOptions options, ListRule r) { if (r.Tags == null) { return(true); } if (options.IncludedTags != null) { if (r.Tags.Any(options.IncludedTags.Contains)) { return(true); } else { return(false); } } if (options.ExcludedTags != null) { if (r.Tags.Any(options.ExcludedTags.Contains)) { return(false); } } return(true); }
private void FilterRules(FirewallOptions options) { var filteredRules = AllRules.Where(r => FilterByTags(options, r)); RequestBody = filteredRules .Where(r => r.Locations.Contains(LocationKind.RequestBody)) .ToList(); ResponseBody = filteredRules .Where(r => r.Locations.Contains(LocationKind.ResponseBody)) .ToList(); Files = filteredRules .Where(r => r.Locations.Contains(LocationKind.PathFileName)) .ToList(); Folders = filteredRules .Where(r => r.Locations.Contains(LocationKind.PathSegment)) .ToList(); Extensions = filteredRules .Where(r => r.Locations.Contains(LocationKind.PathFileNameExtension)) .ToList(); UserAgents = filteredRules .Where(r => r.Locations.Contains(LocationKind.RequestHeaderUserAgent)) .ToList(); FormFileName = filteredRules .Where(r => r.Locations.Contains(LocationKind.RequestFormFileName)) .ToList(); FormFileNameExtension = filteredRules .Where(r => r.Locations.Contains(LocationKind.RequestFormFileNameExtension)) .ToList(); }