public List <WeekResult> GetWeekResults(Year year) { var results = new List <WeekResult>(); foreach (var week in repository.CurrentWeeks) { if (repository.HasWeekData(year.WeekKey(week))) { results.Add(storedDataRetriever.GetWeekResult(week, year, repository)); } else { var liveResult = liveDataRetriever.GetWeekResult(week, year, repository); repository.Save(year, liveResult); results.Add(liveResult); } } return(results); }