Exemplo n.º 1
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.º 2
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.");
        }
        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.");
        }