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 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."); }