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()); } }
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))); }
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))); }