Example #1
0
    public async Task Handle(PublishFixtureEventsToSlackWorkspace message, IMessageHandlerContext messageContext)
    {
        _logger.LogInformation($"Publishing {message.FixtureEvents.Count} fixture events to {message.WorkspaceId}");
        var slackTeam = await _slackTeamRepo.GetTeam(message.WorkspaceId);

        TauntData tauntData = null;

        if (slackTeam.Subscriptions.ContainsSubscriptionFor(EventSubscription.Taunts) && slackTeam.FplbotLeagueId.HasValue)
        {
            var gws = await _globalSettingsClient.GetGlobalSettings();

            var currentGw  = gws.Gameweeks.GetCurrentGameweek();
            var slackUsers = await GetSlackUsers(slackTeam);

            var entries = await _leagueEntriesByGameweek.GetEntriesForGameweek(currentGw.Id, slackTeam.FplbotLeagueId.Value);

            var transfers = await _transfersByGameWeek.GetTransfersByGameweek(currentGw.Id, slackTeam.FplbotLeagueId.Value);

            tauntData = new TauntData(transfers, entries, entryName => SlackHandleHelper.GetSlackHandleOrFallback(slackUsers, entryName));
        }

        if (!string.IsNullOrEmpty(slackTeam.FplBotSlackChannel))
        {
            var eventMessages = GameweekEventsFormatter.FormatNewFixtureEvents(message.FixtureEvents, slackTeam.Subscriptions.ContainsStat, FormattingType.Slack, tauntData);
            var formattedStr  = eventMessages.Select(evtMsg => $"{evtMsg.Title}\n{evtMsg.Details}");
            await _publisher.PublishToWorkspace(slackTeam.TeamId, slackTeam.FplBotSlackChannel, formattedStr.ToArray());
        }
    }
Example #2
0
 private TauntData CreateNoTransfersForGoalScorer()
 {
     User[] users = new[]
     {
         new User {
             Real_name = "dontCare dontCaresen", Name = "dontCareName"
         }
     };
     return(new TauntData(
                Array.Empty <TransfersByGameWeek.Transfer>(),
                Array.Empty <GameweekEntry>(),
                entry => SlackHandleHelper.GetSlackHandleOrFallback(users, entry)));
 }
Example #3
0
 private TauntData CreateTransferOutForGoalScorerContext(string slackUserRealName, string slackUserHandle, string entryName)
 {
     User[] users = new[]
     {
         new User {
             Id = "U123", Real_name = slackUserRealName, Name = slackUserHandle
         }
     };
     return(new TauntData(
                new[]
     {
         new TransfersByGameWeek.Transfer
         {
             EntryId = 2, EntryName = entryName, PlayerTransferredOut = TestBuilder.PlayerId
         }
     },
                Array.Empty <GameweekEntry>(),
                entry => SlackHandleHelper.GetSlackHandleOrFallback(users, entry)));
 }