public async Task <ProcessedPlayer> process() { _previousData = await _playerProvider.getPlayer(_footballer.id); if (_currentExplains == null) { _log.Warn(string.Format("No explains: {0}\n", _footballer.web_name)); return(_previousData); } ProcessedPlayer currentPlayerData = new ProcessedPlayer(_footballer, _currentExplains, _previousData); determineFixtureStatus(currentPlayerData); var prevElements = _previousData != null && _previousData.rawData != null ?_previousData.rawData.explain : new List <FootballerScoreDetailElement>(); List <FootballerScoreDetailElement> currExplains = _currentExplains; for (var i = 0; i < currExplains.Count; i++) { FootballerScoreDetailElement prevExplain = i < prevElements.Count ? prevElements[i] : null; FootballerScoreDetailElement diff = getPlayerDiff(currExplains[i], prevExplain); addNewEvents(currentPlayerData.events, diff, _footballer, currExplains[i]); } return(currentPlayerData); }
public static ProcessedPlayer ApiPlayer(ProcessedPlayer oldData) { var newPlayer = new ProcessedPlayer(oldData.rawData.footballer, oldData.rawData.explain, oldData); newPlayer.rawData = null; return(newPlayer); }
public ProcessedPick(ProcessedPlayer player, Pick p) { footballer = player; pick = p; if (player.rawData.explains != null) { score = new ScoreCalculator().calculateFootballerScore(player.rawData.explains) * pick.multiplier; } }
public async Task <ProcessedPlayer> getPlayer(int id) { if (_playerCache == null) { await readAllPlayers(); } ProcessedPlayer player = null; return(_playerCache.players.TryGetValue(id, out player) ? player : null); }
public ProcessedPlayerCollection copyApi() { var api = new ProcessedPlayerCollection(); foreach (var elementId in players.Keys) { var element = players[elementId]; if (element.events != null && element.events.Count > 0) { api.players.Add(elementId, ProcessedPlayer.ApiPlayer(element)); } } return(api); }
private void determineFixtureStatus(ProcessedPlayer player) { player.isCurrentlyPlaying = false; player.isDonePlaying = false; int realTeamId = _footballer.team; foreach (Fixture fixture in _currentLiveData.fixtures) { if (fixture.team_a == realTeamId || fixture.team_h == realTeamId) { if (isFixtureInProgress(fixture)) { player.isCurrentlyPlaying = true; } else if (isFixtureComplete(fixture)) { player.isDonePlaying = true; } } } }
public ProcessedPlayer(Footballer footballer, List <FootballerScoreDetailElement> explains, ProcessedPlayer oldData) { rawData.footballer = footballer; rawData.explain = explains; if (oldData != null) { isCurrentlyPlaying = oldData.isCurrentlyPlaying; isDonePlaying = oldData.isDonePlaying; oldData.events.ForEach(e => events.Add(e)); } }