public ChatContext(string serverId, IConfig config, IDatabaseBackend databaseBackend, IDataProvider dataProvider) { if (config == null) { throw new ArgumentNullException(nameof(config)); } DatabaseWrapper db = new DatabaseWrapper(databaseBackend ?? throw new ArgumentNullException(nameof(databaseBackend))); IMessageStorage msgStore = db.IsNullBackend ? new MemoryMessageStorage() : new ADOMessageStorage(db); DataProvider = dataProvider ?? throw new ArgumentNullException(nameof(dataProvider)); Sessions = new SessionManager(this, serverId, config.ScopeTo(@"sessions")); Messages = new MessageManager(this, msgStore, config.ScopeTo(@"messages")); Users = new UserManager(this); Channels = new ChannelManager(this, config, Bot); ChannelUsers = new ChannelUserRelations(this, Channels, Users, Sessions, Messages); RateLimiter = new RateLimiter(config.ScopeTo(@"flood")); Channels.UpdateChannels(); // Should probably not rely on Timers in the future BumpTimer = new Timer(e => { Logger.Write(@"Bumping last online times..."); IEnumerable <IUser> users = null; Sessions.GetActiveSessions(s => users = s.Select(s => s.User)); DataProvider.UserBumpClient.SubmitBumpUsers(Sessions, users); }, null, TimeSpan.Zero, TimeSpan.FromMinutes(1)); }
public WhoCommand(UserManager users, ChannelManager channels, ChannelUserRelations channelUsers, IUser sender) { Users = users ?? throw new ArgumentNullException(nameof(users)); Channels = channels ?? throw new ArgumentNullException(nameof(channels)); ChannelUsers = channelUsers ?? throw new ArgumentNullException(nameof(channelUsers)); Sender = sender ?? throw new ArgumentNullException(nameof(sender)); }
public MessageSendPacketHandler( UserManager users, ChannelManager channels, ChannelUserRelations channelUsers, MessageManager messages, ChatBot bot, IEnumerable <ICommand> commands ) { Users = users ?? throw new ArgumentNullException(nameof(users)); Channels = channels ?? throw new ArgumentNullException(nameof(channels)); ChannelUsers = channelUsers ?? throw new ArgumentNullException(nameof(channelUsers)); Messages = messages ?? throw new ArgumentNullException(nameof(messages)); Bot = bot ?? throw new ArgumentNullException(nameof(bot)); Commands = commands ?? throw new ArgumentNullException(nameof(commands)); }
public Context(IConfig config, IDatabaseBackend databaseBackend, IDataProvider dataProvider) { if (config == null) { throw new ArgumentNullException(nameof(config)); } ServerId = RNG.NextString(ID_LENGTH); // maybe read this from the cfg instead Created = DateTimeOffset.Now; // read this from config definitely DatabaseWrapper db = new DatabaseWrapper(databaseBackend ?? throw new ArgumentNullException(nameof(databaseBackend))); IMessageStorage msgStore = db.IsNullBackend ? new MemoryMessageStorage() : new ADOMessageStorage(db); DataProvider = dataProvider ?? throw new ArgumentNullException(nameof(dataProvider)); Sessions = new SessionManager(this, Users, config.ScopeTo(@"sessions"), ServerId); Messages = new MessageManager(this, msgStore, config.ScopeTo(@"messages")); Users = new UserManager(this); Channels = new ChannelManager(this, config, Bot); ChannelUsers = new ChannelUserRelations(this, Channels, Users, Sessions, Messages); RateLimiter = new RateLimiter(config.ScopeTo(@"flood")); WelcomeMessage = new WelcomeMessage(config.ScopeTo(@"welcome")); AddEventHandler(Sessions); AddEventHandler(Users); AddEventHandler(Channels); AddEventHandler(ChannelUsers); AddEventHandler(Messages); Channels.UpdateChannels(); // Should probably not rely on Timers in the future BumpTimer = new Timer(e => { Logger.Write(@"Nuking dead sessions and bumping online times..."); Sessions.CheckTimeOut(); IEnumerable <IUser> users = null; Sessions.GetActiveSessions(s => users = s.Select(s => s.User)); DataProvider.UserBumpClient.SubmitBumpUsers(Sessions, users); }, null, TimeSpan.Zero, TimeSpan.FromMinutes(1)); }
public AuthPacketHandler( SessionManager sessions, UserManager users, ChannelManager channels, ChannelUserRelations channelUsers, MessageManager messages, IDataProvider dataProvider, IUser sender, int version ) { Sessions = sessions ?? throw new ArgumentNullException(nameof(sessions)); Users = users ?? throw new ArgumentNullException(nameof(users)); Channels = channels ?? throw new ArgumentNullException(nameof(channels)); ChannelUsers = channelUsers ?? throw new ArgumentNullException(nameof(channelUsers)); Messages = messages ?? throw new ArgumentNullException(nameof(messages)); DataProvider = dataProvider ?? throw new ArgumentNullException(nameof(dataProvider)); Sender = sender ?? throw new ArgumentNullException(nameof(sender)); Version = version; }
public UserCommand( IRCServer server, Context context, UserManager users, ChannelManager channels, ChannelUserRelations channelUsers, SessionManager sessions, IDataProvider dataProvider, WelcomeMessage welcomeMessage ) { Server = server ?? throw new ArgumentNullException(nameof(server)); Context = context ?? throw new ArgumentNullException(nameof(context)); Users = users ?? throw new ArgumentNullException(nameof(users)); Channels = channels ?? throw new ArgumentNullException(nameof(channels)); ChannelUsers = channelUsers ?? throw new ArgumentNullException(nameof(channelUsers)); Sessions = sessions ?? throw new ArgumentNullException(nameof(sessions)); DataProvider = dataProvider ?? throw new ArgumentNullException(nameof(dataProvider)); WelcomeMessage = welcomeMessage ?? throw new ArgumentNullException(nameof(welcomeMessage)); }
public AuthPacketHandler( SockChatServer server, SessionManager sessions, UserManager users, ChannelManager channels, ChannelUserRelations channelUsers, MessageManager messages, IDataProvider dataProvider, IUser sender, WelcomeMessage welcomeMessage ) { Server = server ?? throw new ArgumentNullException(nameof(server)); Sessions = sessions ?? throw new ArgumentNullException(nameof(sessions)); Users = users ?? throw new ArgumentNullException(nameof(users)); Channels = channels ?? throw new ArgumentNullException(nameof(channels)); ChannelUsers = channelUsers ?? throw new ArgumentNullException(nameof(channelUsers)); Messages = messages ?? throw new ArgumentNullException(nameof(messages)); DataProvider = dataProvider ?? throw new ArgumentNullException(nameof(dataProvider)); Sender = sender ?? throw new ArgumentNullException(nameof(sender)); WelcomeMessage = welcomeMessage ?? throw new ArgumentNullException(nameof(welcomeMessage)); }
public PrivateMessageCommand(ChannelManager channels, ChannelUserRelations channelUsers, MessageManager messages) { Channels = channels ?? throw new ArgumentNullException(nameof(channels)); ChannelUsers = channelUsers ?? throw new ArgumentNullException(nameof(channelUsers)); Messages = messages ?? throw new ArgumentNullException(nameof(messages)); }
public IRCConnectionList(ChannelUserRelations channelUsers) : base(channelUsers) { }
public JoinCommand(ChannelManager channels, ChannelUserRelations channelUsers, SessionManager sessions) { Channels = channels ?? throw new ArgumentNullException(nameof(channels)); ChannelUsers = channelUsers ?? throw new ArgumentNullException(nameof(channelUsers)); Sessions = sessions ?? throw new ArgumentNullException(nameof(sessions)); }
public ConnectionList(ChannelUserRelations channelUsers) { ChannelUsers = channelUsers ?? throw new ArgumentNullException(nameof(channelUsers)); }
public InviteCommand(UserManager users, ChannelManager channels, ChannelUserRelations channelUsers) { Users = users ?? throw new ArgumentNullException(nameof(users)); Channels = channels ?? throw new ArgumentNullException(nameof(channels)); ChannelUsers = channelUsers ?? throw new ArgumentNullException(nameof(channelUsers)); }
public CreateChannelCommand(ChannelManager channels, ChannelUserRelations channelUsers, IUser sender) { Channels = channels ?? throw new ArgumentNullException(nameof(channels)); ChannelUsers = channelUsers ?? throw new ArgumentNullException(nameof(channelUsers)); Sender = sender ?? throw new ArgumentNullException(nameof(sender)); }
public PartCommand(ChannelManager channels, ChannelUserRelations channelUsers) { Channels = channels ?? throw new ArgumentNullException(nameof(channels)); ChannelUsers = channelUsers ?? throw new ArgumentNullException(nameof(channelUsers)); }