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); }
public static bool TryParseTeamLevelAndMoniker(string selectedTeam, out TwinRinksTeamLevel level, out string moniker) { level = default(TwinRinksTeamLevel); moniker = null; if (!string.IsNullOrWhiteSpace(selectedTeam)) { var parts = selectedTeam.Trim().Split(' '); if (parts.Length == 2) { moniker = parts[1]; if (Enum.TryParse <TwinRinksTeamLevel>(parts[0], true, out TwinRinksTeamLevel lvl)) { level = lvl; return(true); } } } return(false); }
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); } } } }