public async Task <ProcessedPlayerCollection> process() { try { var currEvent = await(new EventFinder(_client).GetCurrentEvent()); // Get all the footballer data required var footballers = await getFootballers(); var players = footballers.Keys; var explains = await getLiveExplains(players); var provider = new ProcessedPlayerProviderV3(currEvent.id); var playerCollection = new ProcessedPlayerCollection(); foreach (var id in players) { var footballer = footballers[id]; List <FootballerScoreDetailElement> gwExplains = new List <FootballerScoreDetailElement>(); explains.TryGetValue(id, out gwExplains); var liveData = await _client.getLiveData(currEvent.id); var processor = new SinglePlayerProcessorV3(provider, currEvent.id, footballer, gwExplains, liveData); var player = await processor.process(); playerCollection.players.Add(id, player); } await provider.writeFullPlayers(playerCollection); await provider.writeApiPlayers(playerCollection); return(playerCollection); } catch (Exception ex) { _log.Error(ex); } return(await Task.FromResult((ProcessedPlayerCollection)null)); }
public SinglePlayerProcessorV3(ProcessedPlayerProviderV3 playerProvider, int gameweek, Footballer footballer, List <FootballerScoreDetailElement> explains, Live liveData) { _footballer = footballer; _currentExplains = explains; _currentLiveData = liveData; _gameweek = gameweek; _playerProvider = playerProvider; }