public async Task <MethodResult <LoginResult> > LoginAsync(ILoginOption loginOption) { var ldapLogin = loginOption as LdapLoginOption; if (ldapLogin != null) { return(await LoginWithLdapAsync(ldapLogin.Username, ldapLogin.Password).ConfigureAwait(false)); } var emailLogin = loginOption as EmailLoginOption; if (emailLogin != null) { return(await LoginWithEmailAsync(emailLogin.Email, emailLogin.Password).ConfigureAwait(false)); } var usernameLogin = loginOption as UsernameLoginOption; if (usernameLogin != null) { return(await LoginWithUsernameAsync(usernameLogin.Username, usernameLogin.Password).ConfigureAwait(false)); } var resumeLogin = loginOption as ResumeLoginOption; if (resumeLogin != null) { return(await LoginResumeAsync(resumeLogin.Token).ConfigureAwait(false)); } throw new NotSupportedException($"The given login option `{loginOption.GetType()}` is not supported."); }
public async Task <MethodResult <LoginResult> > LoginAsync(ILoginOption loginOption) { if (loginOption is LdapLoginOption ldapLogin) { Username = ldapLogin.Username; Password = ldapLogin.Password; var res = await LoginWithLdapAsync(ldapLogin.Username, ldapLogin.Password).ConfigureAwait(false); await LogInToRestApi(); return(res); } if (loginOption is EmailLoginOption emailLogin) { Password = emailLogin.Password; var res = await LoginWithEmailAsync(emailLogin.Email, emailLogin.Password).ConfigureAwait(false); await LogInToRestApi(); return(res); } if (loginOption is UsernameLoginOption usernameLogin) { Username = usernameLogin.Username; Password = usernameLogin.Password; var res = await LoginWithUsernameAsync(usernameLogin.Username, usernameLogin.Password).ConfigureAwait(false); await LogInToRestApi(); return(res); } if (loginOption is ResumeLoginOption resumeLogin) { return(await LoginResumeAsync(resumeLogin.Token).ConfigureAwait(false)); } throw new NotSupportedException($"The given login option `{loginOption.GetType()}` is not supported."); }
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); } } }
private static async void StartBot(ILoginOption option) { await bot.ConnectAsync(); await bot.LoginAsync(option); await bot.SubscribeAsync(() => new DirectResponseMessage(), () => new DirectResponseMessage()); }
public async Task LoginAsync(ILoginOption loginOption) { _logger.Info("Logging-in."); var result = await Driver.LoginAsync(loginOption).ConfigureAwait(false); if (result.HasError) { throw new Exception($"Login failed: {result.Error.Message}."); } LoginToken = result.Result.Token; }
public async Task LoginAsync(ILoginOption loginOption) { logger.LogInformation("Logging-in."); Net.Models.MethodResults.MethodResult <Net.Models.MethodResults.LoginResult> result; try { result = await Driver.LoginAsync(loginOption).ConfigureAwait(false); if (result.HasError) { throw new Exception($"Login failed: {result.Error.Message}."); } LoginToken = result.Result.Token; UserId = result.Result.UserId; } catch (TaskCanceledException) { logger.LogError("Login failed, retrying"); await LoginAsync(loginOption); } }
public async Task<MethodResult<LoginResult>> LoginAsync(ILoginOption loginOption) { var ldapLogin = loginOption as LdapLoginOption; if (ldapLogin != null) { return await LoginWithLdapAsync(ldapLogin.Username, ldapLogin.Password).ConfigureAwait(false); } var emailLogin = loginOption as EmailLoginOption; if (emailLogin != null) { return await LoginWithEmailAsync(emailLogin.Email, emailLogin.Password).ConfigureAwait(false); } var usernameLogin = loginOption as UsernameLoginOption; if (usernameLogin != null) { return await LoginWithUsernameAsync(usernameLogin.Username, usernameLogin.Password).ConfigureAwait(false); } var resumeLogin = loginOption as ResumeLoginOption; if (resumeLogin != null) { return await LoginResumeAsync(resumeLogin.Token).ConfigureAwait(false); } throw new NotSupportedException($"The given login option `{loginOption.GetType()}` is not supported."); }