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 void addCompaniesToFilter(ILockerList <Result> results) { lock (results.Locker) { var sb = new StringBuilder(checkTextBox2.Text); foreach (var result in results) { if (!result.Selected) { continue; } if (sb.Length > 0) { sb.AppendLine(); } sb.Append("+-").Append(result.Company); } checkTextBox2.Text = sb.ToString(); var filters = new SortedList <StringMatchFilter>(false, false); filters.Add(new Filter(".*", false, "Name", FilterPermission.Allow, FilterSearchType.Regex)); filters.AddCollection(getCompanyFilters(checkTextBox2)); jobSearcher.Filters = filters; jobSearcher.ReFilter(); } }
public void DeleteSelected(ILockerList <Result> results) { lock (results.Locker) { for (int i = results.Count - 1; i >= 0; i--) { if (results[i].Selected) { results.RemoveAt(i); } } } }
public void ReFilter(ILockerList <Result> results) { lock (results.Locker) { for (int i = results.Count - 1; i >= 0; i--) { var result = results[i]; if (!filter(result, Filters)) { results.Remove(result); } } } }
public void OpenInBrowser(ILockerList <Result> results) { lock (results.Locker) { foreach (var result in results) { if (!result.Selected) { continue; } System.Diagnostics.Process.Start(result.Url); } } }
public void MoveResultsTo(ILockerList <Result> from, ILockerList <Result> to) { lock (from.Locker) { for (int i = from.Count - 1; i >= 0; i--) { var result = from[i]; if (!result.Selected) { continue; } from.Remove(result); result.Selected = false; to.Add(result); } } }