コード例 #1
0
ファイル: State.cs プロジェクト: ehamberg/fplbot
        public async Task Refresh(int currentGameweek)
        {
            var latest = await _fixtureClient.GetFixturesByGameweek(currentGameweek);

            var fixtureEvents    = LiveEventsExtractor.GetUpdatedFixtureEvents(latest, _currentGameweekFixtures);
            var finishedFixtures = LiveEventsExtractor.GetProvisionalFinishedFixtures(latest, _currentGameweekFixtures, _teams, _players);

            _currentGameweekFixtures = latest;

            var globalSettings = await _settingsClient.GetGlobalSettings();

            var after         = globalSettings.Players;
            var priceChanges  = PlayerChangesEventsExtractor.GetPriceChanges(after, _players, _teams);
            var injuryUpdates = PlayerChangesEventsExtractor.GetInjuryUpdates(after, _players, _teams);

            _players = after;

            if (fixtureEvents.Any())
            {
                var fixtureUpdates = new FixtureUpdates
                {
                    CurrentGameweek = _currentGameweek.Value,
                    Teams           = _teams,
                    Players         = _players,
                    Events          = fixtureEvents
                };
                await _mediator.Publish(new FixtureEventsOccured(fixtureUpdates));
            }

            if (priceChanges.Any())
            {
                await _mediator.Publish(new PriceChangeOccured(priceChanges));
            }

            if (injuryUpdates.Any())
            {
                await _mediator.Publish(new InjuryUpdateOccured(injuryUpdates));
            }

            if (finishedFixtures.Any())
            {
                await _mediator.Publish(new FixturesFinished(finishedFixtures.ToList()));
            }
        }
コード例 #2
0
        public async Task HandleForTeam(FixtureUpdates updates, SlackTeam slackTeam)
        {
            var slackUsers = await GetSlackUsers(slackTeam);

            var entries = await _leagueEntriesByGameweek.GetEntriesForGameweek(updates.CurrentGameweek, (int)slackTeam.FplbotLeagueId);

            var transfers = await _transfersByGameWeek.GetTransfersByGameweek(updates.CurrentGameweek, (int)slackTeam.FplbotLeagueId);

            var context = new GameweekLeagueContext
            {
                Players            = updates.Players,
                Teams              = updates.Teams,
                Users              = slackUsers,
                GameweekEntries    = entries,
                SlackTeam          = slackTeam,
                TransfersForLeague = transfers
            };
            var formattedStr = GameweekEventsFormatter.FormatNewFixtureEvents(updates.Events.ToList(), context);
            await _publisher.PublishToWorkspace(slackTeam.TeamId, slackTeam.FplBotSlackChannel, formattedStr.ToArray());
        }