Exemplo n.º 1
0
        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.");
        }
Exemplo n.º 2
0
        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.");
        }
Exemplo n.º 3
0
        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);
                }
            }
        }
Exemplo n.º 4
0
        private static async void StartBot(ILoginOption option)
        {
            await bot.ConnectAsync();

            await bot.LoginAsync(option);

            await bot.SubscribeAsync(() => new DirectResponseMessage(), () => new DirectResponseMessage());
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
        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.");
        }