public async Task ProcessPlayers(List <Models.Player> players, int season, Competition competition, IDbConnection conn) { _logger.LogInformation($"Processing {players.Count} players for season {season} and competition {competition.Name}"); var playerEntities = new List <Entities.Player>(); var playerSummaries = new List <Entities.PlayerSummary>(); var allTeams = await _teamRepository.GetAllTeamsAsync(conn); foreach (var playerModel in players) { var playerEntity = new Entities.Player(); playerEntity.Id = playerModel.Id; playerEntity.Name = playerModel.PlayerName.Replace("'", "'"); playerEntities.Add(playerEntity); var team = GetPlayersTeam(playerModel, allTeams); if (team == null) { _logger.LogError($"Team not found for player {playerModel.PlayerName} with team title {playerModel.TeamTitle}"); continue; } var summary = new Entities.PlayerSummary(); summary.Player = playerEntity; summary.Season = season; summary.Competition = competition; summary.Team = team; summary.Games = playerModel.Games; summary.MinutesPlayed = playerModel.Time; summary.Goals = playerModel.Goals; summary.ExpectedGoals = playerModel.ExpectedGoals; summary.Assists = playerModel.Assists; summary.ExpectedAssists = playerModel.ExpectedAssists; summary.Shots = playerModel.Shots; summary.KeyPasses = playerModel.KeyPasses; summary.YellowCards = playerModel.YellowCards; summary.RedCards = playerModel.RedCards; summary.Position = playerModel.Position; summary.NonPenaltyGoals = playerModel.NonPenaltyGoals; summary.NonPenaltyExpectedGoals = playerModel.NonPenaltyExpectedGoals; summary.ExpectedGoalsChain = playerModel.ExpectedGoalsChain; summary.ExpectedGoalsBuildup = playerModel.ExpectedGoalsBuildup; playerSummaries.Add(summary); } await _playerRepository.InsertPlayersAsync(playerEntities, conn); await _playerSummaryRepository.InsertPlayerSummariesAsync(playerSummaries, conn); _logger.LogInformation($"Successfully processed {players.Count} players for season {season} and competition {competition.Name}"); }
public static Models.v0.PlayerSummaryBasic ToModel(this Entities.PlayerSummary entity) { if (entity == null) { return(null); } return(new Models.v0.PlayerSummaryBasic { Player = entity.Player.ToModel(), Games = entity.Games, MinutesPlayed = entity.MinutesPlayed, Goals = entity.Goals, Assists = entity.Assists, Shots = entity.Shots, KeyPasses = entity.KeyPasses, YellowCards = entity.YellowCards, RedCards = entity.RedCards, Position = entity.Position, Team = entity.Team.ToModel(), NonPenaltyGoals = entity.NonPenaltyGoals, }); }