public void UpdateBasicData(List<string> stats)
        {
            List<Player> players = new List<Player>();
            DateTime currentDate = DateTime.Today;
            for (int i = 0; i < stats.Count; i += 9)
            {
                var playerModel = new PlayerModel()
                {
                    Name = stats[i + 1],
                    Selected = double.Parse(stats[i + 4].TrimEnd('%')),
                    Points = int.Parse(stats[i + 7]),
                    Team = stats[i + 2],
                    RoundScore = int.Parse(stats[i + 6]),
                    MinutesPlayed = int.Parse(stats[i + 8].Replace(",", "")),
                    IsInjured = stats[i].Contains(INJURED_ICON) ? true : false,
                    UpadatedDate = DateTime.Today
                };

                playerModel.UpadatedDate = new DateTime(currentDate.Year, currentDate.Month, currentDate.Day);
                playerModel.SetPosition(stats[i + 3]);
                playerModel.SetPrice(stats[i + 5]);

                Player player = AddOrUpdatePlayer(playerModel);
                players.Add(player);
            }

            List<int> playerIds = players.Select(p => p.Id).ToList();

            data.Players.DeleteRange(p => !playerIds.Contains(p.Id));
            data.SaveChanges();
        }
        private Player AddOrUpdatePlayer(PlayerModel playerModel)
        {
            DateTime currentSeason = DateTime.Now.Month >= 7 ? new DateTime(DateTime.Now.Year, 7, 1) :
                new DateTime(DateTime.Now.Year - 1, 7, 1);
            var playerExists = data.Players.All()
                .FirstOrDefault(x => x.Name == playerModel.Name && x.Team.Initials == playerModel.Team &&
                    x.UpadetedDate >= currentSeason);
            var team = data.Teams.All().FirstOrDefault(x => x.Initials == playerModel.Team);
            if (playerExists == null)
            {
                Player newPlayer = new Player()
                {
                    Name = playerModel.Name,
                    Position = playerModel.Position,
                    Selected = playerModel.Selected,
                    Price = playerModel.Price,
                    RoundScore = playerModel.RoundScore,
                    Points = playerModel.Points,
                    MinutesPlayed = playerModel.MinutesPlayed,
                    IsInjured = playerModel.IsInjured,
                    UpadetedDate = playerModel.UpadatedDate
                };
                team.Players.Add(newPlayer);
                playerExists = newPlayer;

            }
            else
            {
                playerExists.TeamId = team.Id;
                playerExists.Selected = playerModel.Selected;
                playerExists.Points = playerModel.Points;
                playerExists.Price = playerModel.Price;
                playerExists.RoundScore = playerModel.RoundScore;
                playerExists.MinutesPlayed = playerModel.MinutesPlayed;
                playerExists.IsInjured = playerModel.IsInjured;
                playerExists.UpadetedDate = playerModel.UpadatedDate;
            }

            data.SaveChanges();
            return playerExists;
        }
        public void UpdatePointsPerGameData(
            List<string> stats)
        {
            for (int i = 0; i < stats.Count; i += 9)
            {
                var playerModel = new PlayerModel()
                {
                    Name = stats[i + 1],
                    Team = stats[i + 2],
                    PointsPerGame = decimal.Parse(stats[i + 8])
                };

                var playerExists = data.Players.All()
                    .FirstOrDefault(x => x.Name == playerModel.Name && x.Team.Initials == playerModel.Team);
                if (playerExists != null)
                {
                    playerExists.PointsPerGame = playerModel.PointsPerGame;
                }
            }

            data.SaveChanges();
        }