public static IEnumerable <TwinRinksEvent> FilterTeamEvents(this IEnumerable <TwinRinksEvent> me, TwinRinksTeamLevel level, object teamDesignator) { string teamName = $"{level.ToString().ToUpperInvariant()} {teamDesignator.ToString().ToUpperInvariant()}"; string allTeamsName = $"ALL {level.ToString().ToUpperInvariant()}S"; string levelStr = level.ToString().ToUpperInvariant(); foreach (var e in me) { if (e.EventType == TwinRinksEventType.Game) { if (e.HomeTeamName.Equals(teamName, StringComparison.InvariantCultureIgnoreCase)) { yield return(e); } else if (e.AwayTeamName.Equals(teamName, StringComparison.InvariantCultureIgnoreCase)) { yield return(e); } } else // practice { var isPowerSkate = e.IsPowerSkatingEvent(); if (e.HomeTeamName.Equals(teamName, StringComparison.InvariantCultureIgnoreCase)) { yield return(e); } else if (e.AwayTeamName.Equals(teamName, StringComparison.InvariantCultureIgnoreCase)) { yield return(e); } else if (e.HomeTeamName.Equals(allTeamsName, StringComparison.InvariantCultureIgnoreCase)) { yield return(e); } else if (e.AwayTeamName.Equals(allTeamsName, StringComparison.InvariantCultureIgnoreCase)) { yield return(e); } else if (isPowerSkate && (e.HomeTeamName.ToUpperInvariant().Contains(levelStr) || e.AwayTeamName.ToUpperInvariant().Contains(levelStr))) { yield return(e); } } } }
private static bool TryParseTeamMonikers(TwinRinksTeamLevel v, string fullTeamDescription, out string teamNameResult) { var teamName = fullTeamDescription.ToUpperInvariant(); var teamLevel = $"{v.ToString().ToUpperInvariant()} "; if (teamName.StartsWith(teamLevel)) { var moniker = teamName.Replace(teamLevel, ""); if (!string.IsNullOrWhiteSpace(moniker) && !moniker.Equals("POWER", StringComparison.InvariantCultureIgnoreCase)) { teamNameResult = moniker; return(true); } } teamNameResult = null; return(false); }