private StatData GetStataDataPrivate(IEnumerable <Data <StatData> > statDataListsToSearch, string itemStatText, bool preferLocalStat) { StatData result = null; StatDataTextMatchResult statDataMatch = GetStatDataMatch(statDataListsToSearch, itemStatText, preferLocalStat); if (statDataMatch == null) { this.logger.LogWarning("Failed to find matching stat data for {@itemStatText}.", itemStatText); } else { result = statDataMatch.StatData; } return(result); }
private static StatDataTextMatchResult GetStatDataMatch(IEnumerable <Data <StatData> > statDataListsToSearch, string itemStatText, bool preferLocalStat) { StatDataTextMatchResult result = null; var statDataTextMatcher = new StatDataTextMatcher(itemStatText); foreach (var statData in statDataListsToSearch.SelectMany(x => x.Entries)) { StatDataTextMatchResult matchResult = statDataTextMatcher.Match(statData); if (matchResult.IsMatch) { if ((preferLocalStat && matchResult.IsLocalStat) || (!preferLocalStat && !matchResult.IsLocalStat)) { result = matchResult; break; } result = matchResult; } } return(result); }