private Task <IEnumerable <long> > GetCalls(bool filterWithRegex = false) { IStore s = Store; Regex r = null; bool filter = !string.IsNullOrEmpty(FilterText); if (filter && filterWithRegex) { try { var str = /*"^" +*/ FilterText.Replace("(", "\\(").Replace(")", "\\)").Replace(".", "\\.").Replace("*", ".*") /*+ "$"*/; r = new Regex(str, RegexOptions.Compiled | RegexOptions.IgnoreCase); } catch { } } if (!filter) { var ret = Task.Run(() => (IEnumerable <long>)s.IterateCallsWithMethodRuleSet().ToList()); return(ret); } else { if (filterWithRegex) { var ret = Task.Run(() => (IEnumerable <long>)s.IterateCallsWithMethodRuleSet().AsParallel().Where(n => r.IsMatch(s.GetCallFullMethodName(n))).ToList()); return(ret); } else { var fText = FilterText.Trim().ToUpperInvariant(); var ret = Task.Run(() => (IEnumerable <long>)s.IterateCallsWithMethodRuleSet().AsParallel().Where(n => s.GetCallFullMethodName(n).ToUpperInvariant().Contains(fText)).ToList()); return(ret); } } }