public IList <Skater> ShowSkaters() { try { using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); SqlCommand cmd = new SqlCommand("SELECT * FROM skater", connection); SqlDataReader reader = cmd.ExecuteReader(); List <Skater> skaters = new List <Skater>(); while (reader.Read()) { Skater skater = new Skater(); skater.Number = Convert.ToInt32(reader["SkaterNumber"]); skater.Name = Convert.ToString(reader["SkaterName"]); skaters.Add(skater); } return(skaters); } } catch (Exception exception) { Console.WriteLine(exception.Message); throw; } }
public int AddSkater(Skater newSkater) { try { using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); SqlCommand command = new SqlCommand($"INSERT INTO skater(SkaterNumber, SkaterName) VALUES (@newSkaterNumber, @newSkaterName)", connection); command.Parameters.AddWithValue("@newSkaterNumber", newSkater.Number); command.Parameters.AddWithValue("@newSkaterName", newSkater.Name); command.ExecuteNonQuery(); command = new SqlCommand($"SELECT SkaterNumber FROM skater WHERE SkaterNumber = {newSkater.Number}", connection); Skater skater = new Skater(); int newSkaterAdded = Convert.ToInt32(command.ExecuteScalar()); return(newSkaterAdded); } } catch (Exception exception) { Console.WriteLine(exception.Message); throw; } }
private static void ExtractSkatersFromSection(Team team, TeamSection teamSection) { foreach (string line in teamSection.SkaterInformationLines) { IEnumerable <string> acronyms = line.GetAcronymns(); Skater skater = new Skater() { Name = line.Substring(0, 30).RemoveAcronyms().Replace("_", "").Trim(), IsRookie = acronyms.Contains("R"), IsCaptain = acronyms.Contains("C"), IsAlternate = acronyms.Contains("A"), }; // Convert string of values into stats string rawStatsLine = line.Substring(30, line.Length - 30).Replace("%", "").Trim(); string[] rawStats = rawStatsLine.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); ConvertRawStats(rawStats, skater); // Optional acronym found in traded players skater.SeasonTotals.TeamAcronym = Helper.GetTeamAcronym(acronyms); team.Skaters.Add(skater); } CombineSplitSkaterStats(team); CombineTradedSkaterSubtotals(team); }
public async Task <List <Skater> > GetRosterAsync() { List <Skater> skaters = new List <Skater>(); Uri uri = new Uri(string.Format(Constants.teamUri, string.Empty)); try { HttpResponseMessage response = await client.GetAsync(uri + "?expand=team.roster"); if (response.IsSuccessStatusCode) { JObject teamInfo = JObject.Parse(await response.Content.ReadAsStringAsync()); JToken roster = teamInfo["teams"][0]["roster"]["roster"]; foreach (JToken skaterInfo in roster) { Skater skater = new Skater { SkaterId = (int)skaterInfo["person"]["id"], Name = (string)skaterInfo["person"]["fullName"], PositionShort = (string)skaterInfo["position"]["abbreviation"], JerseyNumber = (int)skaterInfo["jerseyNumber"] }; skaters.Add(skater); } } } catch (Exception ex) { Debug.WriteLine(@"\tERROR {0}", ex.Message); } return(skaters); }
private static void CombineTradedSkaterSubtotals(Team team) { // Traded skaters stored as new skaters are removed // Their season stats are pushed into the parent's subtotals List <Skater> skatersToDelete = new List <Skater>(); Skater previousSkater = team.Skaters.FirstOrDefault(); foreach (Skater skater in team.Skaters.Skip(1)) { if (skater.Name == previousSkater.Name) { skatersToDelete.Add(skater); if (previousSkater.SeasonSubTotals == null) { previousSkater.SeasonSubTotals = new List <SkaterSeasonStats>(); } previousSkater.SeasonSubTotals.Add(skater.SeasonTotals); } else { previousSkater = skater; } } // Removes extra skaters team.Skaters = team.Skaters.Where(skater => !skatersToDelete.Contains(skater)).ToList(); }
public async Task <Skater> GetYearByYearSkaterStatsAsync(Skater skater) { skater.YearRange = new List <string>(); try { HttpResponseMessage response = await client.GetAsync($"{PersonUri}{skater.SkaterId}/stats?stats=yearByYear"); if (response.IsSuccessStatusCode) { JObject skaterStatsInfo = JObject.Parse(await response.Content.ReadAsStringAsync()); JToken skaterStats = skaterStatsInfo["stats"][0]["splits"]; foreach (JToken split in skaterStats.Children()) { if (split["team"]["id"] != null && (int)split["team"]["id"] == 14) { skater.YearRange.Add((string)split["season"]); } } } } catch (Exception ex) { Debug.WriteLine(@"\tERROR {0}", ex.Message); } return(skater); }
public async Task <Skater> GetSkaterStatsBySeasonAsync(Skater skater, string season) { skater = await GetRegularSeasonSkaterStats(skater, season); skater = await GetSkaterPlayoffStats(skater, season); return(skater); }
public SkaterPage(Skater skater) { InitializeComponent(); BindingContext = new SkaterViewModel(skater); //if(skater.SkaterId == 8478010) //{ // PlayerImage.Source = "point.png"; // //BackgroundImageSource = "point.png"; //} }
private static void ExtractSkatersFromSection(Team team, TeamSection teamSection) { // First Skater Stat Section foreach (HtmlNode row in teamSection.SkaterInformationNode1.Descendants("tr").Where(a => a.ParentNode.Name != "thead")) { IList <HtmlNode> cells = row.Descendants("td").ToList(); string name = cells.First().InnerText; bool isTraded = name.StartsWith("_"); name = name.Replace("_", "").Trim(); IEnumerable <string> acronyms = name.GetAcronymns(); Skater skater = new Skater() { Name = name.RemoveAcronyms(), IsRookie = acronyms.Contains("R"), IsCaptain = acronyms.Contains("C"), IsAlternate = acronyms.Contains("A"), }; ConvertCellsToStats(cells, skater); if (isTraded) { skater.SeasonTotals.TeamAcronym = acronyms.Where(a => a.Length == 3).First(); } team.Skaters.Add(skater); } // Second Skater Stat Section foreach (HtmlNode row in teamSection.SkaterInformationNode2.Descendants("tr").Where(a => a.ParentNode.Name != "thead")) { IList <HtmlNode> cells = row.Descendants("td").ToList(); string name = cells.First().InnerText.Replace("_", "").Trim(); IEnumerable <string> acronyms = name.GetAcronymns(); Skater skater = new Skater() { Name = name.RemoveAcronyms(), }; FillInBlankColumnsWithZeros(cells); ConvertCellsToStats(cells, skater); team.Skaters.Add(skater); } CombineSplitSkaterStats(team); CombineTradedSkaterSubtotals(team); }
public async Task <Skater> GetRegularSeasonSkaterStats(Skater skater, string season) { try { HttpResponseMessage response = await client.GetAsync($"{PersonUri}{skater.SkaterId}/stats?stats=statsSingleSeason&season={season}"); if (response.IsSuccessStatusCode) { JObject skaterStatsInfo = JObject.Parse(await response.Content.ReadAsStringAsync()); JToken skaterStats = skaterStatsInfo["stats"][0]["splits"][0]["stat"]; skater.IsGoalie = (skater.PositionShort == "G"); if (!skater.IsGoalie) { skater.RegularSeasonSkaterStats = new SkaterStats { Games = (int)skaterStats["games"], Goals = (int)skaterStats["goals"], Assists = (int)skaterStats["assists"] }; } else { skater.RegularSeasonGoalieStats = new GoalieStats { Games = (int)skaterStats["games"], Shutouts = (int)skaterStats["shutouts"], Saves = (int)skaterStats["saves"], SavePercentage = (int)skaterStats["savePercentage"], PowerPlaySaves = (int)skaterStats["powerPlaySaves"], ShotsAgainst = (int)skaterStats["shotsAgainst"], }; } skater = await GetYearByYearSkaterStatsAsync(skater); skater.SelectedYearRange = skater.YearRange.LastOrDefault(); } } catch (Exception ex) { Debug.WriteLine(@"\tERROR {0}", ex.Message); } return(skater); }
public async Task NavigateFromMenu(HomeMenuItem selectedItem) { int id = (int)selectedItem.Id; if (MenuPages.ContainsKey(2)) { MenuPages.Remove(id); } if (!MenuPages.ContainsKey(id)) { switch (id) { case (int)MenuItemType.Browse: Skater skater = await App.DataManager.GetSkaterStatsBySeasonAsync(CurrentSeason, selectedItem.Skater); if (skater.IsGoalie) { MenuPages.Add(id, new NavigationPage(new GoaliePage(skater))); } else { MenuPages.Add(id, new NavigationPage(new SkaterPage(skater))); } break; case (int)MenuItemType.Team: MenuPages.Add(id, new NavigationPage(new TeamPage())); break; } } NavigationPage newPage = MenuPages[id]; if (newPage != null && Detail != newPage) { Detail = newPage; if (Device.RuntimePlatform == Device.Android) { await Task.Delay(100); } IsPresented = false; } }
public ActionResult Skater(int?li, int?pi) { if (pi == null) { RedirectToAction("Search"); } var _database = new BeaujeauxEntities(); Skater skater = _database.Skaters.Where(s => s.Id == pi).FirstOrDefault(); if (skater == null) { throw new Exception("no player found"); } int leagueId = GetLeagueId(li); return(View(new SkaterPlayerStatsModel(_database, skater, leagueId))); }
public bool UpdateSkater(Skater updatedSkater) { try { using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); SqlCommand command = new SqlCommand($"UPDATE Skater SET SkaterName = @updatedSkaterName WHERE SkaterNumber = @skaterNumber", connection); command.Parameters.AddWithValue("@updatedSkaterName", updatedSkater.Name); command.Parameters.AddWithValue("@skaterNumber", updatedSkater.Number); command.ExecuteNonQuery(); return(true); } } catch (Exception exception) { Console.WriteLine(exception.Message); return(false); } }
private Skater GetSkaterFromRow(Skater previousSkater, SkaterRow skaterRow) { Skater dbSkater = null; if (previousSkater.Name == skaterRow.Name) { dbSkater = previousSkater; } if (dbSkater == null) { dbSkater = db.Skaters.FirstOrDefault(a => a.Name == skaterRow.Name); } if (dbSkater == null) { dbSkater = new Skater() { Name = skaterRow.Name }; db.Skaters.Add(dbSkater); } return(dbSkater); }
public static void SplitPlayer(int skaterId, int firstPlayerLasstSeason, string suffixA, string suffixB) { using (var db = new BojoBoxContext()) { var skaterA = db.Skaters.First(a => a.Id == skaterId); var skaterName = skaterA.Name; var skaterSeasonsA = db.SkaterSeasons.Where(a => a.SkaterId == skaterA.Id && a.Season <= firstPlayerLasstSeason).ToList(); var skaterSeasonsB = db.SkaterSeasons.Where(a => a.SkaterId == skaterA.Id && a.Season > firstPlayerLasstSeason).ToList(); skaterA.Name = skaterName + " " + suffixA; skaterA.Seasons = skaterSeasonsA; var skaterB = new Skater(); skaterB.Name = skaterName + " " + suffixB; skaterB.Seasons = skaterSeasonsB; skaterB.LeagueId = skaterA.LeagueId; db.Skaters.Add(skaterB); db.SaveChanges(); } }
private static void CombineSkaterStats(Skater skaterA, Skater skaterB) { skaterA.SeasonTotals.GW = skaterB.SeasonTotals.GW; skaterA.SeasonTotals.GT = skaterB.SeasonTotals.GT; skaterA.SeasonTotals.FOW = skaterB.SeasonTotals.FOW; skaterA.SeasonTotals.FOT = skaterB.SeasonTotals.FOT; skaterA.SeasonTotals.GA = skaterB.SeasonTotals.GA; skaterA.SeasonTotals.TA = skaterB.SeasonTotals.TA; skaterA.SeasonTotals.EG = skaterB.SeasonTotals.EG; skaterA.SeasonTotals.HT = skaterB.SeasonTotals.HT; skaterA.SeasonTotals.PSG = skaterB.SeasonTotals.PSG; skaterA.SeasonTotals.PSS = skaterB.SeasonTotals.PSS; skaterA.SeasonTotals.FW = skaterB.SeasonTotals.FW; skaterA.SeasonTotals.FL = skaterB.SeasonTotals.FL; skaterA.SeasonTotals.FT = skaterB.SeasonTotals.FT; skaterA.SeasonTotals.GS = skaterB.SeasonTotals.GS; skaterA.SeasonTotals.PS = skaterB.SeasonTotals.PS; skaterA.SeasonTotals.WG = skaterB.SeasonTotals.WG; skaterA.SeasonTotals.WP = skaterB.SeasonTotals.WP; skaterA.SeasonTotals.S1 = skaterB.SeasonTotals.S1; skaterA.SeasonTotals.S2 = skaterB.SeasonTotals.S2; skaterA.SeasonTotals.S3 = skaterB.SeasonTotals.S3; }
public ActionResult GetNextRankedSkaterID(int seasonID) { Skater model = new Skater(); try { dbconAPP = GetConnection(); dbconAPP.Open(); model.SkaterID = model.GetNextRankedSkaterID(dbconAPP, seasonID); } catch (Exception ex) { return(Content("ERROR: " + ex.Message + " (Draft.GetNextRankedSkaterID[GET]).")); } finally { if (dbconAPP != null && dbconAPP.State == System.Data.ConnectionState.Open) { dbconAPP.Close(); } } return(Content(model.SkaterID.ToString())); }
private void AddSkater() { Console.WriteLine("Enter the number of the skater you want to add: "); string userInput = Console.ReadLine(); int userNumber; bool isInt = int.TryParse(userInput, out userNumber); if (isInt) { Console.WriteLine("Enter the name of the skater you want to add"); string userName = Console.ReadLine(); Skater newSkater = new Skater() { Number = userNumber, Name = userName }; int id = skaterDAO.AddSkater(newSkater); if (id > 0) { Console.WriteLine("SUCCESS!"); } else { Console.WriteLine("Did not create - please try again!"); } } else { Console.WriteLine("This is not a valid number. Please hit enter to try again."); Console.ReadLine(); Console.Clear(); AddSkater(); } }
private void UpdateSkater() { Console.WriteLine("Enter the skater number whose name you would like to update:"); string userInput = Console.ReadLine(); int skaterNumber; bool isInt = int.TryParse(userInput, out skaterNumber); if (isInt) { Console.WriteLine("Enter the updated name"); string newName = Console.ReadLine(); Skater updatedSkater = new Skater { Number = skaterNumber, Name = newName }; bool result = skaterDAO.UpdateSkater(updatedSkater); if (result) { Console.WriteLine("Success!"); } else { Console.WriteLine("Sorry, did not update. Please try again!"); } } else { Console.WriteLine("Sorry, this is not a valid skater number. Please hit enter to try again."); Console.ReadLine(); Console.Clear(); UpdateSkater(); } }
private void AddSkaters() { Skater previousSkater = new Skater() { Name = "" }; SkaterSeason previousSeason = new SkaterSeason(); foreach (var skaterRow in season.SkaterRows) { Skater dbSkater = GetSkaterFromRow(previousSkater, skaterRow); int i = 0; SkaterSeason dbSkaterSeason = new SkaterSeason() { Skater = dbSkater, League = league, Season = season.SeasonNumber, isPlayoffs = season.IsPlayoffs, GamesPlayed = skaterRow.Stats[i++], Goals = skaterRow.Stats[i++], Assists = skaterRow.Stats[i++], Points = skaterRow.Stats[i++], PlusMinus = skaterRow.Stats[i++], PenaltyMinutes = skaterRow.Stats[i++], PenaltyMajors = skaterRow.Stats[i++], Hits = skaterRow.Stats[i++], HitsTaken = skaterRow.Stats[i++], Shots = skaterRow.Stats[i++], OwnShotsBlocked = skaterRow.Stats[i++], OwnShotsMissed = skaterRow.Stats[i++], ShotsBlocked = skaterRow.Stats[i++], MinutesPlayed = skaterRow.Stats[i++], PPGoals = skaterRow.Stats[i++], PPAssists = skaterRow.Stats[i++], PPPoints = skaterRow.Stats[i++], PPShots = skaterRow.Stats[i++], PPMinutes = skaterRow.Stats[i++], PKGoals = skaterRow.Stats[i++], PKAssists = skaterRow.Stats[i++], PKPoints = skaterRow.Stats[i++], PKShots = skaterRow.Stats[i++], PKMinutes = skaterRow.Stats[i++], GameWinningGoals = skaterRow.Stats[i++], GameTyingGoals = skaterRow.Stats[i++], FaceoffsTotal = skaterRow.Stats[i++], EmptyNetGoals = skaterRow.Stats[i++], HatTricks = skaterRow.Stats[i++], PenaltyShotGoals = skaterRow.Stats[i++], PenaltyShotAttempts = skaterRow.Stats[i++], FightsWon = skaterRow.Stats[i++], FightsLost = skaterRow.Stats[i++], FightsDraw = skaterRow.Stats[i++], FaceoffWins = skaterRow.Stats[i++], }; dbSkaterSeason.Team = (skaterRow.TeamAcronym != null) ? teams.First(a => a.Acronym == skaterRow.TeamAcronym) : null; if (skaterRow.IsSubTotal) { dbSkaterSeason.SubtotalFor = previousSeason; } else { previousSkater = dbSkater; previousSeason = dbSkaterSeason; } db.SkaterSeasons.Add(dbSkaterSeason); } }
public new static SkaterFullDto Create(Skater source) => AutoMapper.Mapper.Map <SkaterFullDto>(source);
public GoaliePage(Skater skater) { InitializeComponent(); BindingContext = new SkaterViewModel(skater); }
public SkaterViewModel(Skater skater) { YearRange = skater.YearRange; Skater = skater; }
public static PlayerDto Create(Skater source) => AutoMapper.Mapper.Map <PlayerDto>(source);
private static void ConvertCellsToStats(IList <HtmlNode> cells, Skater skater) { double[] numericValues = cells.Skip(3).Select(cell => double.Parse(cell.InnerText.Replace("%", ""))).ToArray(); SkaterSeasonStats seasonStats = new SkaterSeasonStats(); if (numericValues.Length == 26) { seasonStats.GP = (int)numericValues[0]; seasonStats.G = (int)numericValues[1]; seasonStats.A = (int)numericValues[2]; seasonStats.P = (int)numericValues[3]; seasonStats.PLMI = (int)numericValues[4]; seasonStats.PIM = (int)numericValues[5]; seasonStats.PM5 = (int)numericValues[6]; seasonStats.HIT = (int)numericValues[7]; seasonStats.HTT = (int)numericValues[8]; seasonStats.SHT = (int)numericValues[9]; seasonStats.OSB = (int)numericValues[10]; seasonStats.OSM = (int)numericValues[11]; //seasonStats.SPER = (int)numericValues[12]; Don't need percentage seasonStats.SB = (int)numericValues[13]; seasonStats.MP = (int)numericValues[14]; //seasonStats.AMG = (int)numericValues[15]; Don't need average seasonStats.PPG = (int)numericValues[16]; seasonStats.PPA = (int)numericValues[17]; seasonStats.PPP = (int)numericValues[18]; seasonStats.PPS = (int)numericValues[19]; seasonStats.PPM = (int)numericValues[20]; seasonStats.PKG = (int)numericValues[21]; seasonStats.PKA = (int)numericValues[22]; seasonStats.PKP = (int)numericValues[23]; seasonStats.PKS = (int)numericValues[24]; seasonStats.PKM = (int)numericValues[25]; } else { seasonStats.GW = (int)numericValues[0]; seasonStats.GT = (int)numericValues[1]; //seasonStats.FOPer = (int)numericValues[2]; Don't need percentage seasonStats.FOT = (int)numericValues[3]; seasonStats.FOW = Helper.GetPercentageAmount(numericValues[2], seasonStats.FOT); seasonStats.GA = (int)numericValues[4]; seasonStats.TA = (int)numericValues[5]; seasonStats.EG = (int)numericValues[6]; seasonStats.HT = (int)numericValues[7]; //skaseasonStatster.P20 = (int)numericValues[8]; Don't need average seasonStats.PSG = (int)numericValues[9]; seasonStats.PSS = (int)numericValues[10]; seasonStats.FW = (int)numericValues[11]; seasonStats.FL = (int)numericValues[12]; seasonStats.FT = (int)numericValues[13]; seasonStats.GS = (int)numericValues[14]; seasonStats.PS = (int)numericValues[15]; seasonStats.WG = (int)numericValues[16]; seasonStats.WP = (int)numericValues[17]; // For some reason traded stats don't track stars. F**K. if (numericValues.Length == 21) { seasonStats.S1 = (int)numericValues[18]; seasonStats.S2 = (int)numericValues[19]; seasonStats.S3 = (int)numericValues[20]; } else { seasonStats.S1 = 0; seasonStats.S2 = 0; seasonStats.S3 = 0; } } skater.SeasonTotals = seasonStats; }
public Task <Skater> GetSkaterStatsBySeasonAsync(string season, Skater skater) { return(restService.GetSkaterStatsBySeasonAsync(skater, season)); }
public SkaterPlayerStatsModel(BeaujeauxEntities database, Skater skater, int leagueId) : base(database, leagueId) { Skater = skater; var seasonTypes = Skater.SkaterSeasonStats .Select(sss => sss.Season.SeasonType) .Distinct() .OrderBy(st => st.Id) .ToList(); var statGroups = new List <SkaterStatGroup>(); foreach (var type in seasonTypes) { var stats = database.SkaterSeasonStats .Where(sss => sss.Season.SeasonTypeId == type.Id) .Where(sss => sss.Season.LeagueId == leagueId) .Where(sss => sss.SkaterId == Skater.Id) .Where(sss => !sss.IsSubtotal) .OrderByDescending(sss => sss.Season.Number) .ToList(); SkaterSeasonStat totals = new SkaterSeasonStat() { GP = stats.Sum(a => a.GP), G = stats.Sum(a => a.G), A = stats.Sum(a => a.A), P = stats.Sum(a => a.P), PLMI = stats.Sum(a => a.PLMI), SHT = stats.Sum(a => a.SHT), SB = stats.Sum(a => a.SB), MP = stats.Sum(a => a.MP), PIM = stats.Sum(a => a.PIM), PM5 = stats.Sum(a => a.PM5), HIT = stats.Sum(a => a.HIT), HTT = stats.Sum(a => a.HTT), PPG = stats.Sum(a => a.PPG), PPA = stats.Sum(a => a.PPA), PPP = stats.Sum(a => a.PPP), PPS = stats.Sum(a => a.PPS), PPM = stats.Sum(a => a.PPM), PKG = stats.Sum(a => a.PKG), PKA = stats.Sum(a => a.PKA), PKP = stats.Sum(a => a.PKP), PKS = stats.Sum(a => a.PKS), PKM = stats.Sum(a => a.PKM), GW = stats.Sum(a => a.GW), GT = stats.Sum(a => a.GT), EG = stats.Sum(a => a.EG), HT = stats.Sum(a => a.HT), FOW = stats.Sum(a => a.FOW), FOT = stats.Sum(a => a.FOT), PSG = stats.Sum(a => a.PSG), PSS = stats.Sum(a => a.PSS), FW = stats.Sum(a => a.FW), FL = stats.Sum(a => a.FL), FT = stats.Sum(a => a.FT), S1 = stats.Sum(a => a.S1), S2 = stats.Sum(a => a.S2), S3 = stats.Sum(a => a.S3), }; statGroups.Add(new SkaterStatGroup() { SeasonType = type, Stats = stats, TotalStats = totals, }); } GroupedStats = statGroups; }
private static void ConvertRawStats(string[] rawStats, Skater skater) { double[] numericValues = rawStats.Select(stats => double.Parse(stats)).ToArray(); SkaterSeasonStats seasonStats = new SkaterSeasonStats(); // Some skater stats are split into two parts. // If there's less than 40 stats it's split in 2 parts if (numericValues.Length > 40) { #region Single Line Stats seasonStats.GP = (int)numericValues[0]; seasonStats.G = (int)numericValues[1]; seasonStats.A = (int)numericValues[2]; seasonStats.P = (int)numericValues[3]; seasonStats.PLMI = (int)numericValues[4]; seasonStats.PIM = (int)numericValues[5]; seasonStats.PM5 = (int)numericValues[6]; seasonStats.HIT = (int)numericValues[7]; seasonStats.HTT = (int)numericValues[8]; seasonStats.SHT = (int)numericValues[9]; seasonStats.OSB = (int)numericValues[10]; seasonStats.OSM = (int)numericValues[11]; //seasonStats.SPER = (int)numericValues[12]; Don't need percentage seasonStats.SB = (int)numericValues[13]; seasonStats.MP = (int)numericValues[14]; //seasonStats.AMG = (int)numericValues[15]; Don't need average seasonStats.PPG = (int)numericValues[16]; seasonStats.PPA = (int)numericValues[17]; seasonStats.PPP = (int)numericValues[18]; seasonStats.PPS = (int)numericValues[19]; seasonStats.PPM = (int)numericValues[20]; seasonStats.PKG = (int)numericValues[21]; seasonStats.PKA = (int)numericValues[22]; seasonStats.PKP = (int)numericValues[23]; seasonStats.PKS = (int)numericValues[24]; seasonStats.PKM = (int)numericValues[25]; seasonStats.GW = (int)numericValues[26]; seasonStats.GT = (int)numericValues[27]; //seasonStats.FOPer = (int)numericValues[28]; Don't need percentage seasonStats.FOT = (int)numericValues[29]; seasonStats.FOW = Helper.GetPercentageAmount(numericValues[28], seasonStats.FOT); seasonStats.GA = (int)numericValues[30]; seasonStats.TA = (int)numericValues[31]; seasonStats.EG = (int)numericValues[32]; seasonStats.HT = (int)numericValues[33]; //skaseasonStatster.P20 = (int)numericValues[34]; Don't need average seasonStats.PSG = (int)numericValues[35]; seasonStats.PSS = (int)numericValues[36]; seasonStats.FW = (int)numericValues[37]; seasonStats.FL = (int)numericValues[38]; seasonStats.FT = (int)numericValues[39]; seasonStats.GS = (int)numericValues[40]; seasonStats.PS = (int)numericValues[41]; seasonStats.WG = (int)numericValues[42]; seasonStats.WP = (int)numericValues[43]; // For some reason traded stats don't track stars. F**K. if (numericValues.Length == 47) { seasonStats.S1 = (int)numericValues[44]; seasonStats.S2 = (int)numericValues[45]; seasonStats.S3 = (int)numericValues[46]; } else { seasonStats.S1 = 0; seasonStats.S2 = 0; seasonStats.S3 = 0; } #endregion } else { #region Multi Line Stats if (numericValues.Length == 26) { seasonStats.GP = (int)numericValues[0]; seasonStats.G = (int)numericValues[1]; seasonStats.A = (int)numericValues[2]; seasonStats.P = (int)numericValues[3]; seasonStats.PLMI = (int)numericValues[4]; seasonStats.PIM = (int)numericValues[5]; seasonStats.PM5 = (int)numericValues[6]; seasonStats.HIT = (int)numericValues[7]; seasonStats.HTT = (int)numericValues[8]; seasonStats.SHT = (int)numericValues[9]; seasonStats.OSB = (int)numericValues[10]; seasonStats.OSM = (int)numericValues[11]; //seasonStats.SPER = (int)numericValues[12]; Don't need percentage seasonStats.SB = (int)numericValues[13]; seasonStats.MP = (int)numericValues[14]; //seasonStats.AMG = (int)numericValues[15]; Don't need average seasonStats.PPG = (int)numericValues[16]; seasonStats.PPA = (int)numericValues[17]; seasonStats.PPP = (int)numericValues[18]; seasonStats.PPS = (int)numericValues[19]; seasonStats.PPM = (int)numericValues[20]; seasonStats.PKG = (int)numericValues[21]; seasonStats.PKA = (int)numericValues[22]; seasonStats.PKP = (int)numericValues[23]; seasonStats.PKS = (int)numericValues[24]; seasonStats.PKM = (int)numericValues[25]; } else { seasonStats.GW = (int)numericValues[0]; seasonStats.GT = (int)numericValues[1]; //seasonStats.FOPer = (int)numericValues[2]; Don't need percentage seasonStats.FOT = (int)numericValues[3]; seasonStats.FOW = Helper.GetPercentageAmount(numericValues[2], seasonStats.FOT); seasonStats.GA = (int)numericValues[4]; seasonStats.TA = (int)numericValues[5]; seasonStats.EG = (int)numericValues[6]; seasonStats.HT = (int)numericValues[7]; //skaseasonStatster.P20 = (int)numericValues[8]; Don't need average seasonStats.PSG = (int)numericValues[9]; seasonStats.PSS = (int)numericValues[10]; seasonStats.FW = (int)numericValues[11]; seasonStats.FL = (int)numericValues[12]; seasonStats.FT = (int)numericValues[13]; seasonStats.GS = (int)numericValues[14]; seasonStats.PS = (int)numericValues[15]; seasonStats.WG = (int)numericValues[16]; seasonStats.WP = (int)numericValues[17]; } #endregion } skater.SeasonTotals = seasonStats; }