private Unit UpdateDetail(CupYear cupYear, IOverviewItem overviewItem) { Items.Clear(); if (overviewItem != null) { IList <Group> items; ISet <string> teamCodes; switch (overviewItem) { case MatchOverviewItem matchItem: teamCodes = new HashSet <string> { matchItem.Match.Team1.Code, matchItem.Match.Team2.Code }; break; case TeamOverviewItem teamItem: teamCodes = new HashSet <string> { teamItem.Team.Code }; break; default: throw new NotImplementedException($"{nameof(IOverviewItem)} {overviewItem.GetType()}"); } items = _groupsByYear[cupYear].GetAll() .Where(group => group.Teams.Any(team => teamCodes.Contains(team.Code))) .ToList(); Items.AddRange(items); } return(Unit.Default); }
private Unit UpdateDetail(CupYear cupYear, IOverviewItem overviewItem) { Items.Clear(); if (overviewItem != null) { IList <GoalsWrapper> items; switch (overviewItem) { case MatchOverviewItem matchItem: items = new List <GoalsWrapper> { new GoalsWrapper( matchItem.Match, matchItem.Match.OutcomeTeam1.Goals.Concat(matchItem.Match.OutcomeTeam2.Goals) .OrderBy(goal => goal.Minute) .ToArray()) }; break; case TeamOverviewItem teamItem: items = _matchesByYear[cupYear].GetAll() .SelectMany(match => new[] { (Match: match, Outcome: match.OutcomeTeam1), (Match: match, Outcome: match.OutcomeTeam2) })