public static void GetUserTeamPickDataJson(int userTeamId, UserTeamPicks userTeamPicksInsert, UserTeamPickAutomaticSubs userTeamPickAutomaticSubsInsert, SqlConnection db) { int gameweekId; //Logger.Out("GetUserTeamPickDataJson: Gameweek " + Convert.ToString(gameweekId) + " - starting"); //var urlUserTeamPicks = ""; string userTeamPicksUrl = ConfigSettings.ReadSetting("userTeamPicksUrl"); try { if (Globals.MaxGWFromPicksForUserTeamId == 0 && Globals.StartGameweekId > 0) { Globals.MaxGWFromPicksForUserTeamId = Globals.StartGameweekId; } else { Globals.MaxGWFromPicksForUserTeamId += 1; } for (gameweekId = Globals.MaxGWFromPicksForUserTeamId; gameweekId <= Globals.ActualGameweek; gameweekId++) { GetUserTeamPickJson(userTeamId, gameweekId, userTeamPicksUrl, userTeamPicksInsert, userTeamPickAutomaticSubsInsert, db); } } catch (Exception ex) { Logger.Error("GetUserTeamPickDataJson data exception (UserTeamId: " + userTeamId.ToString() + "): " + ex.Message); //throw new Exception("GetUserTeamPickDataJson data exception (UserTeamId: " + userTeamId.ToString() + "): " + ex.Message); } }
public static void WriteUserTeamPicksToDB(int pageId, UserTeamPicks userTeamPicksInsert, SqlConnection db) { try { UserTeamPickRepository userTeamPickRepository = new UserTeamPickRepository(); //Write UserTeamPick to the db Globals.UserTeamPickRowsInserted = userTeamPickRepository.InsertUserTeamPick(userTeamPicksInsert, db); Logger.Out("UserTeamPick bulk insert complete (PageId: " + Convert.ToString(pageId) + ")"); userTeamPicksInsert.Clear(); } catch (Exception ex) { Logger.Error("Program WriteUserTeamPickToDB error: " + ex.Message); //WriteToDB(userTeamRowsInserted, userTeamSeasonRowsInserted, userTeamInsert, userTeamSeasonsInsert, db); } }
public int InsertUserTeamPick(UserTeamPicks userTeamPicks, SqlConnection db) { int rowsAffected = 0; try { using (IDataReader reader = userTeamPicks.GetDataReader()) { using (var bulkCopy = new SqlBulkCopy(db)) { bulkCopy.BulkCopyTimeout = 0; bulkCopy.BatchSize = 1000; bulkCopy.DestinationTableName = "UserTeamPickStaging"; bulkCopy.EnableStreaming = true; // Add your column mappings here bulkCopy.ColumnMappings.Add("element", "playerid"); bulkCopy.ColumnMappings.Add("position", "position"); bulkCopy.ColumnMappings.Add("is_captain", "is_captain"); bulkCopy.ColumnMappings.Add("is_vice_captain", "is_vice_captain"); bulkCopy.ColumnMappings.Add("multiplier", "multiplier"); bulkCopy.ColumnMappings.Add("userteamid", "userteamid"); bulkCopy.ColumnMappings.Add("gameweekid", "gameweekid"); //using (var dataReader = userTeamPicks.ToDataReader()) //{ bulkCopy.WriteToServer(reader); rowsAffected = SqlBulkCopyExtension.RowsCopiedCount(bulkCopy); //} } } return(rowsAffected); } catch (Exception ex) { Logger.Error("UserTeamPick Repository (insert) error: " + ex.Message); return(rowsAffected); //throw ex; } }
public static bool GetLeagueDataJson(int leagueId, List <int> userTeamIds, string userTeamLeaguesUrl, string userTeamUrl, UserTeams userTeamsUpdateInsert, UserTeamCupMatches userTeamCupInsert, UserTeamClassicLeagues userTeamClassicLeaguesInsert, UserTeamH2hLeagues userTeamH2hLeaguesInsert, UserTeamGameweekHistories userTeamGameweekHistoriesInsert, UserTeamPicks userTeamPicksInsert, UserTeamPickAutomaticSubs userTeamPickAutomaticSubsInsert, UserTeamChips userTeamChipsInsert, UserTeamTransferHistoryData userTeamTransferHistoriesInsert, UserTeamSeasons userTeamSeasonsInsert, SqlConnection db) { UserTeamRepository userTeamRepository = new UserTeamRepository(); UserTeamPickRepository userTeamPickRepository = new UserTeamPickRepository(); UserTeamGameweekHistoryRepository userTeamGameweekHistoryRepository = new UserTeamGameweekHistoryRepository(); UserTeamTransferHistoryRepository userTeamTransferHistoryRepository = new UserTeamTransferHistoryRepository(); UserTeamClassicLeagueRepository userTeamClassicLeagueRepository = new UserTeamClassicLeagueRepository(); UserTeamSeasonRepository userTeamSeasonRepository = new UserTeamSeasonRepository(); try { int userTeamId = 0; bool has_next = false; List <int> leagueUserTeamIds = new List <int>(); string url = string.Format(userTeamLeaguesUrl, leagueId, Globals.PageId); JsonSerializer serializer = new JsonSerializer() { Formatting = Formatting.None }; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; using (HttpClient client = new HttpClient()) using (Stream s = client.GetStreamAsync(url).Result) using (StreamReader sr = new StreamReader(s)) using (JsonReader reader = new JsonTextReader(sr)) { Globals.ApiCalls += 1; Globals.ApiPageCalls += 1; // read the json from a stream // json size doesn't matter because only a small piece is read at a time from the HTTP request var leagueStandingsData = serializer.Deserialize <LeagueStandingsData>(reader); if (leagueStandingsData != null) { League league = leagueStandingsData.league; Standings standings = leagueStandingsData.standings; string leagueName = league.name; has_next = standings.has_next; Logger.Out(leagueName + " (" + Convert.ToString(leagueId) + "): Page " + Convert.ToString(Globals.PageId)); Logger.Out(""); if (db.State == ConnectionState.Closed) { db.ConnectionString = ConfigurationManager.ConnectionStrings["FantasyPremierLeagueUserTeam"].ConnectionString; db.Open(); Logger.Error("GetLeagueDataJson Info (LeagueId: " + leagueId.ToString() + ", PageId:" + Globals.PageId.ToString() + "): Reopening closed db connection"); } List <int> pageUserTeamIds = new List <int>(); foreach (TeamLeaguePosition teamLeaguePosition in standings.results) { userTeamId = teamLeaguePosition.entry; //Add each UserTeamId to a list for checking if GameweekHistory, TransferHistory, and Picks have already been processed for that GW by UserTeamId pageUserTeamIds.Add(userTeamId); } using (DataTable dtUserMaxGWForUserTeamForGameweekHistory = userTeamGameweekHistoryRepository.GetMaxGameweekIdFromUserTeamGameweekHistoryForUserTeamIds(pageUserTeamIds, db)) using (DataTable dtUserMaxGWForUserTeamForPicks = userTeamPickRepository.GetMaxGameweekIdFromUserTeamPickForUserTeamIds(pageUserTeamIds, db)) using (DataTable dtUserMaxGWForUserTeamForTransferHistory = userTeamTransferHistoryRepository.GetMaxGameweekIdFromUserTeamTransferHistoryForUserTeamIds(pageUserTeamIds, db)) using (DataTable dtClassicLeagueCountForUserTeam = userTeamClassicLeagueRepository.GetClassicLeagueCountFromUserTeamClassicLeagueForUserTeamIds(pageUserTeamIds, db)) using (DataTable dtSeasonCountForUserTeam = userTeamSeasonRepository.GetSeasonCountFromUserTeamSeasonForUserTeamIds(pageUserTeamIds, db)) using (DataTable dtUserTeam = userTeamRepository.GetUserTeamForUserTeamIds(pageUserTeamIds, db)) { foreach (TeamLeaguePosition teamLeaguePosition in standings.results) { userTeamId = teamLeaguePosition.entry; Globals.MaxGWFromGameweekHistoryForUserTeamId = GetColumnNameValue(userTeamId, dtUserMaxGWForUserTeamForGameweekHistory, "gameweekid"); Globals.MaxGWFromPicksForUserTeamId = GetColumnNameValue(userTeamId, dtUserMaxGWForUserTeamForPicks, "gameweekid"); Globals.MaxGWFromTransferHistoryForUserTeamId = GetColumnNameValue(userTeamId, dtUserMaxGWForUserTeamForTransferHistory, "gameweekid"); Globals.LeagueCountFromUserTeamClassicLeagueForUserTeamId = GetColumnNameValue(userTeamId, dtClassicLeagueCountForUserTeam, "leagueCount"); Globals.SeasonCountFromUserTeamSeasonForUserTeamId = GetColumnNameValue(userTeamId, dtSeasonCountForUserTeam, "seasonCount"); Globals.ExistingUserTeamId = GetColumnNameValue(userTeamId, dtUserTeam, "userteamid"); FantasyPremierLeagueAPIClient.GetUserTeamDataJson(userTeamId, userTeamIds, userTeamUrl, userTeamsUpdateInsert, userTeamCupInsert, userTeamClassicLeaguesInsert, userTeamH2hLeaguesInsert, userTeamGameweekHistoriesInsert, userTeamPicksInsert, userTeamPickAutomaticSubsInsert, userTeamChipsInsert, userTeamTransferHistoriesInsert, userTeamSeasonsInsert, db); } } pageUserTeamIds.Clear(); } return(has_next); } } catch (Exception ex) { Logger.Error("GetLeagueDataJson data exception (LeagueId: " + leagueId.ToString() + ", PageId:" + Globals.PageId.ToString() + "): " + ex.Message); bool has_next = true; if (Globals.LeagueRetries < 10) { has_next = GetLeagueDataJson(leagueId, userTeamIds, userTeamLeaguesUrl, userTeamUrl, userTeamsUpdateInsert, userTeamCupInsert, userTeamClassicLeaguesInsert, userTeamH2hLeaguesInsert, userTeamGameweekHistoriesInsert, userTeamPicksInsert, userTeamPickAutomaticSubsInsert, userTeamChipsInsert, userTeamTransferHistoriesInsert, userTeamSeasonsInsert, db); Globals.LeagueRetries += 1; } else { Logger.Error("GetLeagueDataJson data exception (LeagueId: " + leagueId.ToString() + "): League/Page doesn't exist skipping to next!!!"); //Program.WriteToDB(pageId, userTeamGameweekHistoriesInsert, userTeamPicksInsert, userTeamPickAutomaticSubsInsert, userTeamChipsInsert, userTeamTransferHistoriesInsert, userTeamSeasonsInsert, userTeamClassicLeaguesInsert, userTeamH2hLeaguesInsert, db); Globals.LeagueRetries = 0; //throw new Exception("GetLeagueDataJson data exception (LeagueId: " + leagueId.ToString() + ", PageId:" + Globals.PageId.ToString() + "): " + ex.Message); } return(has_next); } }
public static void WriteToDB(int pageId, UserTeams userTeamsUpdateInsert, UserTeamCupMatches userTeamCupInsert, UserTeamClassicLeagues userTeamClassicLeaguesInsert, UserTeamH2hLeagues userTeamH2hLeaguesInsert, UserTeamGameweekHistories userTeamGameweekHistoriesInsert, UserTeamPicks userTeamPicksInsert, UserTeamPickAutomaticSubs userTeamPickAutomaticSubsInsert, UserTeamChips userTeamChipsInsert, UserTeamTransferHistoryData userTeamTransferHistoriesInsert, UserTeamSeasons userTeamSeasonsInsert, SqlConnection db) { try { Globals.UserTeamUpdateRowsInserted = 0; Globals.UserTeamPickRowsInserted = 0; Globals.UserTeamPickAutomaticSubsRowsInserted = 0; Globals.UserTeamGameweekHistoryRowsInserted = 0; Globals.UserTeamChipRowsInserted = 0; Globals.UserTeamTransferHistoryRowsInserted = 0; Globals.UserTeamSeasonRowsInserted = 0; Globals.UserTeamClassicLeagueRowsInserted = 0; Globals.UserTeamH2hLeagueRowsInserted = 0; Globals.UserTeamCupRowsInserted = 0; Logger.Out(""); WriteUserTeamToDB(Globals.PageId, userTeamsUpdateInsert, db); WriteUserTeamChipToDB(Globals.PageId, userTeamChipsInsert, db); WriteUserTeamGameweekHistoryToDB(Globals.PageId, userTeamGameweekHistoriesInsert, db); WriteUserTeamPicksToDB(Globals.PageId, userTeamPicksInsert, db); WriteUserTeamPickAutomaticSubsToDB(Globals.PageId, userTeamPickAutomaticSubsInsert, db); WriteUserTeamTransferHistoryToDB(Globals.PageId, userTeamTransferHistoriesInsert, db); WriteUserTeamSeasonToDB(Globals.PageId, userTeamSeasonsInsert, db); WriteUserTeamClassicLeagueToDB(Globals.PageId, userTeamClassicLeaguesInsert, db); WriteUserTeamH2hLeagueToDB(Globals.PageId, userTeamH2hLeaguesInsert, db); WriteUserTeamCupToDB(Globals.PageId, userTeamCupInsert, db); Logger.Out(""); Logger.Out("UserTeam: " + Convert.ToString(Globals.UserTeamInsertCount) + " rows inserted"); Logger.Out("UserTeamCup: " + Convert.ToString(Globals.UserTeamCupRowsInserted) + " rows inserted"); Logger.Out("UserTeamUpdates: " + Convert.ToString(Globals.UserTeamUpdateRowsInserted) + " rows inserted"); Logger.Out("UserTeamSeason: " + Convert.ToString(Globals.UserTeamSeasonRowsInserted) + " rows inserted"); Logger.Out("UserTeamClassicLeague: " + Convert.ToString(Globals.UserTeamClassicLeagueRowsInserted) + " rows inserted"); Logger.Out("UserTeamH2hLeague: " + Convert.ToString(Globals.UserTeamH2hLeagueRowsInserted) + " rows inserted"); Logger.Out("UserTeamGameweekHistory: " + Convert.ToString(Globals.UserTeamGameweekHistoryRowsInserted) + " rows inserted"); Logger.Out("UserTeamTransferHistory: " + Convert.ToString(Globals.UserTeamTransferHistoryRowsInserted) + " rows inserted"); Logger.Out("UserTeamChip: " + Convert.ToString(Globals.UserTeamChipRowsInserted) + " rows inserted"); Logger.Out("UserTeamPick: " + Convert.ToString(Globals.UserTeamPickRowsInserted) + " rows inserted"); Logger.Out("UserTeamPickAutomaticSub: " + Convert.ToString(Globals.UserTeamPickAutomaticSubsRowsInserted) + " rows inserted"); Logger.Out(""); Logger.Out("API Page calls: " + Convert.ToString(Globals.ApiPageCalls)); Logger.Out("API UserTeam calls: " + Convert.ToString(Globals.ApiUserTeamCalls)); Logger.Out("API UserTeamHistory calls: " + Convert.ToString(Globals.ApiUserTeamHistoryCalls)); Logger.Out("API UserTeamTransferHistory calls: " + Convert.ToString(Globals.ApiUserTeamTransferHistoryCalls)); Logger.Out("API UserTeamPick calls: " + Convert.ToString(Globals.ApiUserTeamPickCalls)); Logger.Out("API calls: " + Convert.ToString(Globals.ApiCalls)); Logger.Out(""); } catch (Exception ex) { Logger.Error("Program WriteToDB error: " + ex.Message); //WriteToDB(userTeamRowsInserted, userTeamSeasonRowsInserted, userTeamInsert, userTeamSeasonsInsert, db); } }
static void Main(string[] args) { XmlConfigurator.Configure(); //int pageId; int pageCnt; int leagueId = 314; UserTeams userTeamsUpdateInsert = new UserTeams(); UserTeamPicks userTeamPicksInsert = new UserTeamPicks(); UserTeamPickAutomaticSubs userTeamPickAutomaticSubsInsert = new UserTeamPickAutomaticSubs(); UserTeamGameweekHistories userTeamGameweekHistoriesInsert = new UserTeamGameweekHistories(); UserTeamChips userTeamChipsInsert = new UserTeamChips(); UserTeamTransferHistoryData userTeamTransferHistoriesInsert = new UserTeamTransferHistoryData(); UserTeamSeasons userTeamSeasonsInsert = new UserTeamSeasons(); UserTeamClassicLeagues userTeamClassicLeaguesInsert = new UserTeamClassicLeagues(); UserTeamH2hLeagues userTeamH2hLeaguesInsert = new UserTeamH2hLeagues(); UserTeamCupMatches userTeamCupInsert = new UserTeamCupMatches(); UserTeamRepository userTeamRepository = new UserTeamRepository(); SqlConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["FantasyPremierLeagueUserTeam"].ConnectionString); try { Logger.Out("Starting..."); Logger.Out(""); int pageId; Globals.PageId = 1; int insertInterval; Globals.InsertInterval = 10; bool test = true; if (args.Length == 0) { //System.Console.WriteLine("No arguments passed into program"); Logger.Out("No arguments passed into program"); } else { test = int.TryParse(args[0], out pageId); if (test == false) { Logger.Out("Argument[0] passed into program doesnn't exist or was not integer"); return; } else { Globals.PageId = pageId; } test = int.TryParse(args[1], out insertInterval); if (test == false) { //System.Console.WriteLine("Arguments passed into program were not integer"); Logger.Out("Argument[1] InsertInterval passed into program doesnn't exist or were not integer"); return; } else { Globals.InsertInterval = insertInterval; } } Logger.Out("Starting UserTeams data load"); Logger.Out(""); string userTeamUrl = ConfigSettings.ReadSetting("userTeamURL"); string userTeamLeaguesUrl = ConfigSettings.ReadSetting("userTeamLeaguesURL"); using (db) { db.Open(); bool has_next = true; Globals.UserTeamRetries = 0; pageCnt = 0; List <int> userTeamIds = userTeamRepository.GetAllUserTeamIds(db); Globals.ApiCalls = 0; Globals.ApiPageCalls = 0; Globals.ApiUserTeamCalls = 0; Globals.ApiUserTeamHistoryCalls = 0; Globals.ApiUserTeamTransferHistoryCalls = 0; Globals.ApiUserTeamPickCalls = 0; Globals.UserTeamInsertCount = 0; while (has_next == true) { SetLatestGameweek("UserTeamGameweekHistory"); SetActualGameweek("UserTeamGameweekPick"); pageCnt += 1; if (db.State == ConnectionState.Closed) { db.ConnectionString = ConfigurationManager.ConnectionStrings["FantasyPremierLeagueUserTeam"].ConnectionString; db.Open(); Logger.Error("Program Info (LeagueId: " + leagueId.ToString() + ", PageId:" + Globals.PageId.ToString() + "): Reopening closed db connection"); } has_next = FantasyPremierLeagueLeaguesAPIClient.GetLeagueDataJson(leagueId, userTeamIds, userTeamLeaguesUrl, userTeamUrl, userTeamsUpdateInsert, userTeamCupInsert, userTeamClassicLeaguesInsert, userTeamH2hLeaguesInsert, userTeamGameweekHistoriesInsert, userTeamPicksInsert, userTeamPickAutomaticSubsInsert, userTeamChipsInsert, userTeamTransferHistoriesInsert, userTeamSeasonsInsert, db); if (pageCnt >= Globals.InsertInterval) { WriteToDB(Globals.PageId, userTeamsUpdateInsert, userTeamCupInsert, userTeamClassicLeaguesInsert, userTeamH2hLeaguesInsert, userTeamGameweekHistoriesInsert, userTeamPicksInsert, userTeamPickAutomaticSubsInsert, userTeamChipsInsert, userTeamTransferHistoriesInsert, userTeamSeasonsInsert, db); Globals.ApiCalls = 0; Globals.ApiPageCalls = 0; Globals.ApiUserTeamCalls = 0; Globals.ApiUserTeamHistoryCalls = 0; Globals.ApiUserTeamTransferHistoryCalls = 0; Globals.ApiUserTeamPickCalls = 0; Globals.UserTeamInsertCount = 0; pageCnt = 0; } Globals.PageId += 1; } WriteToDB(Globals.PageId, userTeamsUpdateInsert, userTeamCupInsert, userTeamClassicLeaguesInsert, userTeamH2hLeaguesInsert, userTeamGameweekHistoriesInsert, userTeamPicksInsert, userTeamPickAutomaticSubsInsert, userTeamChipsInsert, userTeamTransferHistoriesInsert, userTeamSeasonsInsert, db); db.Close(); } Logger.Out("UserTeams data load complete"); Logger.Out(""); Logger.Out("Finished!!!"); //// Wait for user input - keep the program running Console.ReadKey(); } catch (Exception ex) { Logger.Error(ex.Message); //Logger.Error(userTeamName + " caused error!!!"); if (db.State == ConnectionState.Closed) { db.ConnectionString = ConfigurationManager.ConnectionStrings["FantasyPremierLeagueUserTeam"].ConnectionString; db.Open(); Logger.Error("Program Exception Info (LeagueId: " + leagueId.ToString() + ", PageId:" + Globals.PageId.ToString() + "): Reopening closed db connection"); } //If error is thrown from sub program write existing records to the DB WriteToDB(Globals.PageId, userTeamsUpdateInsert, userTeamCupInsert, userTeamClassicLeaguesInsert, userTeamH2hLeaguesInsert, userTeamGameweekHistoriesInsert, userTeamPicksInsert, userTeamPickAutomaticSubsInsert, userTeamChipsInsert, userTeamTransferHistoriesInsert, userTeamSeasonsInsert, db); //db.Close(); //throw ex; } }
public static void GetUserTeamDataJson(int userTeamId, List <int> userTeamIds, string userTeamUrl, UserTeams userTeamsUpdateInsert, UserTeamCupMatches userTeamCupInsert, UserTeamClassicLeagues userTeamClassicLeaguesInsert, UserTeamH2hLeagues userTeamH2hLeaguesInsert, UserTeamGameweekHistories userTeamGameweekHistoriesInsert, UserTeamPicks userTeamPicksInsert, UserTeamPickAutomaticSubs userTeamPickAutomaticSubsInsert, UserTeamChips userTeamChipsInsert, UserTeamTransferHistoryData userTeamTransferHistoriesInsert, UserTeamSeasons userTeamSeasonsInsert, SqlConnection db) { try { //Process UserTeam, UserTeamClassicLeague, UserTeamH2hLeague, UserTeamCup ////if (Globals.ExistingUserTeamId == 0 || Globals.LeagueCountFromUserTeamClassicLeagueForUserTeamId == 0) //{ FantasyPremierLeagueAPIUserTeamLeagueAndCup.GetUserTeamLeagueAndCupJson(userTeamId, userTeamIds, userTeamUrl, userTeamsUpdateInsert, userTeamCupInsert, userTeamClassicLeaguesInsert, userTeamH2hLeaguesInsert, db); //} //else //{ // Logger.Out("UserTeam: " + Convert.ToString(userTeamId) + " - skipped (already exists with leagues)"); //} //Process UserTeamGameweekHistory, UserTeamChip, UserTeamSeasonHistory if (Globals.MaxGWFromGameweekHistoryForUserTeamId < Globals.LatestGameweek) { FantasyPremierLeagueAPIGameweekHistory.GetUserTeamHistoryDataJson(userTeamId, userTeamGameweekHistoriesInsert, userTeamChipsInsert, userTeamSeasonsInsert, db); } //Process UserTeamPick, UserTeamPickAutomaticSub //Doesn't check UserTeamPickAutomaticSub - which will be missing if run during an active Gameweek - matches are in progress or before have been played) if (Globals.MaxGWFromPicksForUserTeamId < Globals.ActualGameweek && Globals.ActualGameweek > 0) { FantasyPremierLeagueAPIPick.GetUserTeamPickDataJson(userTeamId, userTeamPicksInsert, userTeamPickAutomaticSubsInsert, db); } //Process UserTeamTransferHistory if (Globals.MaxGWFromTransferHistoryForUserTeamId < Globals.ActualGameweek && Globals.ActualGameweek > 0) { FantasyPremierLeagueAPITransferHistory.GetUserTeamTransferHistoryDataJson(userTeamId, userTeamTransferHistoriesInsert, db); } Logger.Out(""); } catch (Exception ex) { Logger.Error("GetUserTeamDataJson data exception (UserTeamId: " + userTeamId.ToString() + "): " + ex.Message); //throw new Exception("GetUserTeamDataJson data exception (UserTeamId: " + userTeamId.ToString() + "): " + ex.Message); if (Globals.UserTeamRetries < 10) { Globals.UserTeamRetries += 1; GetUserTeamDataJson(userTeamId, userTeamIds, userTeamUrl, userTeamsUpdateInsert, userTeamCupInsert, userTeamClassicLeaguesInsert, userTeamH2hLeaguesInsert, userTeamGameweekHistoriesInsert, userTeamPicksInsert, userTeamPickAutomaticSubsInsert, userTeamChipsInsert, userTeamTransferHistoriesInsert, userTeamSeasonsInsert, db); } else { Logger.Error("GetUserTeamDataJson data exception (UserTeamId: " + userTeamId.ToString() + "): Issue processing User Team skipping to next!!!"); Thread.Sleep(20000); } } }
//public static void GetUserTeamPickDataJson(int userTeamId, int gameweekId, UserTeamPicks userTeamPicksInsert, UserTeamPickAutomaticSubs userTeamPickAutomaticSubsInsert, string userTeamPicksUrl, SqlConnection db) //{ // //Logger.Out("GetUserTeamPickDataJson: Gameweek " + Convert.ToString(gameweekId) + " - starting"); // var urlUserTeamPicks = ""; // try // { // UserTeamPickRepository userTeamPickRepository = new UserTeamPickRepository(); // urlUserTeamPicks = string.Format(userTeamPicksUrl, userTeamId, gameweekId); // HttpClient clientUserTeamPicks = new HttpClient(); // JsonSerializer serializerUserTeamPicks = new JsonSerializer(); // ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; // //Logger.Out("Before using statements - url: " + urlUserTeamPicks); // using (Stream sUserTeamPicks = clientUserTeamPicks.GetStreamAsync(urlUserTeamPicks).Result) // using (StreamReader srUserTeamPicks = new StreamReader(sUserTeamPicks)) // using (JsonReader readerUserTeamPicks = new JsonTextReader(srUserTeamPicks)) // { // Globals.ApiCalls += 1; // Globals.ApiUserTeamPickCalls += 1; // // read the json from a stream // // json size doesn't matter because only a small piece is read at a time from the HTTP request // var userTeamPickData = serializerUserTeamPicks.Deserialize<UserTeamPickData>(readerUserTeamPicks); // if (userTeamPickData != null) // { // GetUserTeamPickJson(userTeamId, gameweekId, userTeamPicksInsert, userTeamPickData, db); // GetUserTeamPickAutomaticSubJson(userTeamId, gameweekId, userTeamPickAutomaticSubsInsert, userTeamPickData, db); // } // } // //Logger.Out("GetUserTeamPickDataJson: Gameweek " + Convert.ToString(gameweekId) + " - completed"); // } // catch (Exception ex) // { // Logger.Error("GetUserTeamPickDataJson data exception (UserTeamId: " + userTeamId.ToString() + " GameweekId: " + gameweekId.ToString() + "): " + ex.Message); // //throw new Exception("GetUserTeamPickDataJson data exception (UserTeamId: " + userTeamId.ToString() + "): " + ex.Message); // GetUserTeamPickDataJson(userTeamId, gameweekId, userTeamPicksInsert, userTeamPickAutomaticSubsInsert, userTeamPicksUrl, db); // } //} public static void GetUserTeamPickJson(int userTeamId, int gameweekId, string urlUserTeamPicks, UserTeamPicks userTeamPicksInsert, UserTeamPickAutomaticSubs userTeamPickAutomaticSubsInsert, SqlConnection db) { try { //Process UserTeamPick and UserTeamPickAutomaticSub if (gameweekId >= Globals.MaxGWFromPicksForUserTeamId) { UserTeamPickRepository userTeamPickRepository = new UserTeamPickRepository(); urlUserTeamPicks = string.Format(urlUserTeamPicks, userTeamId, gameweekId); JsonSerializer serializerUserTeamPicks = new JsonSerializer() { Formatting = Formatting.None }; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; using (HttpClient clientUserTeamPicks = new HttpClient()) using (Stream sUserTeamPicks = clientUserTeamPicks.GetStreamAsync(urlUserTeamPicks).Result) using (StreamReader srUserTeamPicks = new StreamReader(sUserTeamPicks)) using (JsonReader readerUserTeamPicks = new JsonTextReader(srUserTeamPicks)) { Globals.ApiCalls += 1; Globals.ApiUserTeamPickCalls += 1; // read the json from a stream // json size doesn't matter because only a small piece is read at a time from the HTTP request var userTeamPickData = serializerUserTeamPicks.Deserialize <UserTeamPickData>(readerUserTeamPicks); if (userTeamPickData != null) { //Load UserTeamPick data //int userTeamPickIds_userteamid = 0; //int userTeamPickIds_gameweekid = 0; //UserTeamPickId userTeamPickId = new UserTeamPickId(); //userTeamPickId.userteamid = userTeamId; //userTeamPickId.gameweekid = gameweekId; ///List<UserTeamPickId> userTeamPickIds = userTeamPickRepository.GetAllUserTeamPickIdsForUserTeamIdAndGameweekId(userTeamId, gameweekId, db); //if (userTeamPickIds.Count > 0) //{ // userTeamPickIds_userteamid = userTeamPickIds[0].userteamid; // userTeamPickIds_gameweekid = userTeamPickIds[0].gameweekid; //} //UserTeamPicks userTeamPicksUpdate = new UserTeamPicks(); foreach (UserTeamPick userTeamPick in userTeamPickData.picks) { UserTeamPickId userTeamPickId = new UserTeamPickId ( userTeamId, gameweekId, userTeamPick.position ); //needed if want to assign value from parent to add into db table userTeamPick.userteamid = userTeamId; userTeamPick.gameweekid = gameweekId; //if (!userTeamPickIds.Contains(userTeamPickId) && !userTeamPicksInsert.Contains(userTeamPick)) if (!userTeamPicksInsert.Contains(userTeamPick)) { userTeamPicksInsert.Add(userTeamPick); } //else //{ // userTeamPickRepository.UpdateUserTeamPick(userTeamPick); //} } //Logger.Out("GetUserTeamPickJson: Gameweek " + Convert.ToString(gameweekId) + " - completed"); } GetUserTeamPickAutomaticSubJson(userTeamId, gameweekId, userTeamPickAutomaticSubsInsert, userTeamPickData, db); } } //Logger.Out("GetUserTeamPickDataJson: Gameweek " + Convert.ToString(gameweekId) + " - completed"); } catch (Exception ex) { Logger.Error("GetUserTeamPickJson data exception (UserTeamId:" + userTeamId.ToString() + "/GameweekId:" + gameweekId.ToString() + "): " + ex.Message); Logger.Error("GetUserTeamPickJson data exception (UserTeamId:" + userTeamId.ToString() + "/GameweekId:" + gameweekId.ToString() + "): skipping userteam/gameweek"); //throw new Exception("GetUserTeamPickJson data exception (UserTeamId: " + userTeamId.ToString() + "): " + ex.Message); //GetUserTeamPickJson(userTeamId, gameweekId, urlUserTeamPicks, maxGWFromPicksForUserTeamId, userTeamPicksInsert, userTeamPickAutomaticSubsInsert, db); //if (gameweekId + 1 < Globals.ActualGameweek) //{ // gameweekId++; // GetUserTeamPickJson(userTeamId, gameweekId, urlUserTeamPicks, maxGWFromPicksForUserTeamId, userTeamPicksInsert, userTeamPickAutomaticSubsInsert, db); //} } }