1 using Microsoft.Extensions.Logging;
3 using System.Collections.Generic;
37 this.loggerFactory = loggerFactory ??
throw new ArgumentNullException(nameof(loggerFactory));
38 this.asyncDelayer = asyncDelayer ??
throw new ArgumentNullException(nameof(asyncDelayer));
39 this.application = application ??
throw new ArgumentNullException(nameof(application));
46 throw new ArgumentNullException(nameof(settings));
47 var builder = settings.ConnectionStringBuilder;
48 if (builder == null || !builder.Valid)
49 throw new InvalidOperationException(
"Invalid ChatConnectionStringBuilder!");
50 switch (settings.Provider)
54 return new IrcProvider(application, asyncDelayer, loggerFactory.CreateLogger<
IrcProvider>(), ircBuilder.Address, ircBuilder.Port.Value, ircBuilder.Nickname, ircBuilder.Password, ircBuilder.PasswordType, ircBuilder.UseSsl.Value);
59 throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture,
"Invalid ChatProvider: {0}", settings.Provider));
readonly IApplication application
The IApplication for the ProviderFactory
IProvider for the Discord app
Configures the ASP.NET Core web application
Use server authentication
ChatConnectionStringBuilder for ChatProvider.Discord
readonly IAsyncDelayer asyncDelayer
The IAsyncDelayer for the ProviderFactory
For interacting with a chat service
For waiting asynchronously
IProvider for internet relay chat
readonly ILoggerFactory loggerFactory
The ILoggerFactory for the ProviderFactory
ProviderFactory(IApplication application, IAsyncDelayer asyncDelayer, ILoggerFactory loggerFactory)
Construct a ProviderFactory
ChatConnectionStringBuilder for ChatProvider.Irc
ChatProvider
Represents a chat service provider
IProvider CreateProvider(Api.Models.Internal.ChatBot settings)