public void merge(ProcessedPlayerCollection other)
 {
     foreach (var col in other.players)
     {
         players.Add(col);
     }
 }
Ejemplo n.º 2
0
    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));
    }
Ejemplo n.º 3
0
 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);
    }
Ejemplo n.º 5
0
    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);
            }
        }
    }
Ejemplo n.º 6
0
 public async Task writeApiPlayers(ProcessedPlayerCollection players)
 {
     var pathName = getApiPathName();
     await _writer.write(pathName, players.copyApi(), true);
 }
Ejemplo n.º 7
0
 public async Task writeFullPlayers(ProcessedPlayerCollection players)
 {
     var pathName = getFullPathName();
     await _writer.write(pathName, players, true);
 }