1 using Microsoft.Extensions.Logging;
37 ILoggerFactory loggerFactory)
39 this.loggerFactory = loggerFactory ??
throw new ArgumentNullException(nameof(loggerFactory));
40 this.asyncDelayer = asyncDelayer ??
throw new ArgumentNullException(nameof(asyncDelayer));
41 this.assemblyInformationProvider = assemblyInformationProvider ??
throw new ArgumentNullException(nameof(assemblyInformationProvider));
48 throw new ArgumentNullException(nameof(settings));
49 var builder = settings.CreateConnectionStringBuilder();
50 if (builder == null || !builder.Valid)
51 throw new InvalidOperationException(
"Invalid ChatConnectionStringBuilder!");
52 switch (settings.Provider)
56 return new IrcProvider(assemblyInformationProvider, asyncDelayer, loggerFactory.CreateLogger<
IrcProvider>(), ircBuilder.Address, ircBuilder.Port.Value, ircBuilder.Nickname, ircBuilder.Password, ircBuilder.PasswordType, settings.ReconnectionInterval.Value, ircBuilder.UseSsl.Value);
60 assemblyInformationProvider,
62 discordBuilder.BotToken,
63 settings.ReconnectionInterval.Value);
65 throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture,
"Invalid ChatProvider: {0}", settings.Provider));
readonly ILoggerFactory loggerFactory
The ILoggerFactory for the ProviderFactory
IProvider for the Discord app
Use server authentication
ChatConnectionStringBuilder for ChatProvider.Discord
For interacting with a chat service
For waiting asynchronously
ProviderFactory(IAssemblyInformationProvider assemblyInformationProvider, IAsyncDelayer asyncDelayer, ILoggerFactory loggerFactory)
Construct a ProviderFactory
IProvider CreateProvider(Api.Models.Internal.ChatBot settings)
IProvider for internet relay chat
readonly IAsyncDelayer asyncDelayer
The IAsyncDelayer for the ProviderFactory
readonly IAssemblyInformationProvider assemblyInformationProvider
The IAssemblyInformationProvider for the ProviderFactory
ChatConnectionStringBuilder for ChatProvider.Irc
ChatProvider
Represents a chat service provider