private bool filter(Result result, ILockerList <StringMatchFilter> filters, IDictionary <StringMatchFilter, int> lastAcceptedFilters = null) { bool allow = false; lock (filters.Locker) { StringMatchFilter lastAcceptedFilter = null; foreach (var filter in filters) { if (!filter.Enabled || allow == (filter.Permission == FilterPermission.Allow)) { continue; } if (!filter.Negative == checkFunc(result, filter)) { lastAcceptedFilter = filter; allow = filter.Permission == FilterPermission.Allow; } } if (lastAcceptedFilters != null && lastAcceptedFilter != null) { int count = (lastAcceptedFilters.ContainsKey(lastAcceptedFilter)) ? lastAcceptedFilters[lastAcceptedFilter] : 0; lastAcceptedFilters[lastAcceptedFilter] = count + 1; } } return(allow); }
private bool checkFunc(Result result, StringMatchFilter filter) { switch (filter.ContentPart.ToLower()) { case "name": return(filter.Match(result.EntryName ?? "")); case "content": return(filter.Match(result.Description ?? "")); case "company": return(filter.Match(result.Company ?? "")); default: throw new Exception("Incorrect ContentPart: " + filter.ContentPart + ". Allows only \"Name\", \"Content\", \"Company\""); } }
public void SetUp() { mSut = new StringMatchFilter(); mMessageBoxService = Substitute.For <IMessageBoxService>(); mSut.MessageBoxService = mMessageBoxService; }