public async Tasks.Task LoginAsync() { for (int i = 0; i < bots.Count; i++) { RcDiBot bot = bots[i]; try { ILoginOption loginOption = loginOptions[i]; await bot.ConnectAsync(); await bot.LoginAsync(loginOption); await bot.SubscribeAsync <MentionedResponse>(Stream.NotifyUser_Notifications, (provider, b) => { TaskParser.TaskParserService taskParser = provider.GetService <TaskParser.TaskParserService>(); taskParser.Username = b.Driver.Username; return(new MentionedResponse(provider.GetService <ILogger <MentionedResponse> >(), provider.GetService <TaskContext>(), taskParser, this, provider.GetService <RocketChatCache>(), bot.ResponseUrl)); }, false); } catch (Exception ex) { logger.LogError(ex, "Could not login bot " + bot.Driver.Username); } } }
public MentionedResponse(ILogger <MentionedResponse> logger, TaskContext context, TaskParser.TaskParserService parserService, IPrivateMessenger messenger, RocketChatCache cache, string responseUrl = null) { this.logger = logger; this.context = context; this.parserService = parserService; this.messenger = messenger; this.cache = cache; ResponseUrl = responseUrl; }