public bool SyncSeasons() { ResourceCompetitions resourceCompetitions = new ResourceCompetitions(apiToken); // Object to comunicate with API football-data.org. DALSeasons dalSeasons = new DALSeasons(connectionString); // Object to comunicate with Database. List <Competition> lstApiCompetitions = resourceCompetitions.GetAll(); // All competitions available on API. List <Season> lstDbSeasons = dalSeasons.GetAll(); // All seasons available on Database. List <Season> lstInsertSeasons = new List <Season>(); // Temporary List<Areas> to insert. List <Season> lstUpdateSeasosn = new List <Season>(); // Temporary List<Areas> to update. if (lstDbSeasons.Count == 0) // In case theres no record in database we can just insert all Seasons. { foreach (Competition competition in lstApiCompetitions) { if (competition.CurrentSeason != null) { lstInsertSeasons.Add(competition.CurrentSeason); } } dalSeasons.Insert(lstInsertSeasons); return(true); } foreach (Competition apiCompetition in lstApiCompetitions) // If database has alreday some records then... { if (apiCompetition.CurrentSeason != null) { Season dbCompetitionCurrentSeason = dalSeasons.GetById(apiCompetition.CurrentSeason.Id.ToString()); if (dbCompetitionCurrentSeason == null) { lstDbSeasons.Add(apiCompetition.CurrentSeason); } else if (apiCompetition.CurrentSeason.StartDate != dbCompetitionCurrentSeason.StartDate || apiCompetition.CurrentSeason.EndDate != dbCompetitionCurrentSeason.EndDate) // Checks for any difference. { lstUpdateSeasosn.Add(apiCompetition.CurrentSeason); } } } if (lstInsertSeasons.Count != 0) { dalSeasons.Insert(lstInsertSeasons); } if (lstUpdateSeasosn.Count != 0) { dalSeasons.Update(lstUpdateSeasosn); } return(true); }
// SEASONS METHODS. public List <Season> GetAllSeasons() { DALSeasons dal = new DALSeasons(connectionString); return(dal.GetAll()); }