public ChallengeManager(ILogger <ChallengeManager> logger, IChallengeEventBroadcastService challengeEvents, ITwitchChatBroadcastService twitchChat) { _Logger = logger ?? throw new ArgumentNullException(nameof(logger)); _ChallengeEvents = challengeEvents ?? throw new ArgumentNullException(nameof(challengeEvents)); _TwitchChat = twitchChat ?? throw new ArgumentNullException(nameof(twitchChat)); LoadChallenges(); _Logger.LogInformation($"Loaded challenges:\n{String.Join("\n", _AllChallenges.Select(iter => $"\t{iter.ID}/{iter.Name}: {iter.Description}"))}"); _TwitchChat.OnChatMessage += OnTwitchChat; _PollTimer.Interval = 1000; _PollTimer.AutoReset = true; _PollTimer.Elapsed += OnTimerTick; }
public HostedTwitchEventService(ILogger <HostedTwitchEventService> logger, ITwitchChatBroadcastService chatBroadcast, ILogger <TwitchPubSub> twitchLogger, IOptions <TwitchOptions> twitchOptions) { _ChatBroadcast = chatBroadcast ?? throw new ArgumentNullException(nameof(chatBroadcast)); _Logger = logger; _TwitchEvents = new TwitchPubSub(twitchLogger); try { ClientOptions options = new ClientOptions() { }; WebSocketClient socket = new WebSocketClient(options); _TwitchClient = new TwitchClient(socket); } catch (Exception ex) { _Logger.LogError($"Error in HostedTwitchEventService: {ex}"); throw; } _Options = twitchOptions; }