public void merge(ProcessedPlayerCollection other) { foreach (var col in other.players) { players.Add(col); } }
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 ProcessedPlayerProviderV3(int gameweek, ProcessedPlayerCollection inputPlayers = null) { _gameweek = gameweek; _basePath = getBasePath(); _writer = new S3JsonWriter(); _reader = new S3JsonReader(); _playerCache = inputPlayers; }
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); }
public async Task readAllPlayers() { _playerCache = new ProcessedPlayerCollection(); var keys = await _reader.getKeys(getBasePath()); foreach (var key in keys) { if (key.EndsWith(FULL_FILENAME)) { ProcessedPlayerCollection players = await _reader.Read <ProcessedPlayerCollection>(key); _playerCache.merge(players); } } }
public async Task writeApiPlayers(ProcessedPlayerCollection players) { var pathName = getApiPathName(); await _writer.write(pathName, players.copyApi(), true); }
public async Task writeFullPlayers(ProcessedPlayerCollection players) { var pathName = getFullPathName(); await _writer.write(pathName, players, true); }