private static async Task<YearCalendar> GenerateWeekDateSpan(YearCalendar yearCalendar, string year, string season, string week) { string url; WeekDateSpan weekDateSpan; WeekSchedule weekSchedule; int gameCount; string startGameId; string endGameId; string gameIdYear = string.Empty; string gameIdMonth = string.Empty; string gameIdDay = string.Empty; url = NFLService.BuildWeekScheduleUrl(year, season, week); weekSchedule = await NFLService.GetWeekScheduleFromUrlAsync(url); if (weekSchedule.GameSchedules != null) { gameCount = weekSchedule.GameSchedules.Count; startGameId = weekSchedule.GameSchedules[0].GameId; endGameId = weekSchedule.GameSchedules[gameCount - 1].GameId; weekDateSpan = new WeekDateSpan(); ParseGameId(startGameId, ref gameIdYear, ref gameIdMonth, ref gameIdDay); weekDateSpan.StartDate = new DateTime(int.Parse(gameIdYear), int.Parse(gameIdMonth), int.Parse(gameIdDay)); weekDateSpan.EndDate = weekDateSpan.StartDate.AddDays(7); weekDateSpan.Year = year; weekDateSpan.Season = season; weekDateSpan.Week = week.Length == 1 ? "0" + week : week; yearCalendar.WeekDates.Add(weekDateSpan); } return yearCalendar; }
public async static Task<YearCalendar> BuildYearCalendarAsync(string year) { YearCalendar yearCalendar = new YearCalendar(); yearCalendar.WeekDates = new List<WeekDateSpan>(); string season = "PRE"; for (int i = 1; i <= 4; i++) { yearCalendar = await NFLService.GenerateWeekDateSpan(yearCalendar, year, season, i.ToString()); } season = "REG"; for (int i = 1; i <= 17; i++) { yearCalendar = await NFLService.GenerateWeekDateSpan(yearCalendar, year, season, i.ToString()); } season = "POST"; for (int i = 18; i <= 20; i++) { yearCalendar = await NFLService.GenerateWeekDateSpan(yearCalendar, year, season, i.ToString()); } return yearCalendar; }