private async void InitializeClient(ClientType clientType, RoutedEventArgs e) { if (((App)Application.Current).OneDriveClient == null) { var client = clientType == ClientType.Consumer ? OneDriveClientExtensions.GetUniversalClient(this.scopes) as OneDriveClient : BusinessClientExtensions.GetActiveDirectoryClient( oneDriveForBusinessAppId, oneDriveForBusinessReturnUrl) as OneDriveClient; try { await client.AuthenticateAsync(); ((App)Application.Current).OneDriveClient = client; ((App)Application.Current).NavigationStack.Add(new ItemModel(new Item())); Frame.Navigate(typeof(MainPage), e); } catch (OneDriveException exception) { // Swallow the auth exception but write message for debugging. Debug.WriteLine(exception.Error.Message); client.Dispose(); } } else { Frame.Navigate(typeof(MainPage), e); } }
private async Task SignIn(ClientType clientType) { if (this.oneDriveClient == null) { this.oneDriveClient = clientType == ClientType.Consumer ? OneDriveClient.GetMicrosoftAccountClient( FormBrowser.MsaClientId, FormBrowser.MsaReturnUrl, FormBrowser.Scopes, webAuthenticationUi: new FormsWebAuthenticationUi()) : BusinessClientExtensions.GetActiveDirectoryClient(FormBrowser.AadClientId, FormBrowser.AadReturnUrl); } try { if (!this.oneDriveClient.IsAuthenticated) { await this.oneDriveClient.AuthenticateAsync(); } await LoadFolderFromPath(); UpdateConnectedStateUx(true); } catch (OneDriveException exception) { // Swallow authentication cancelled exceptions if (!exception.IsMatch(OneDriveErrorCode.AuthenticationCancelled.ToString())) { if (exception.IsMatch(OneDriveErrorCode.AuthenticationFailure.ToString())) { MessageBox.Show( "Authentication failed", "Authentication failed", MessageBoxButtons.OK); var httpProvider = this.oneDriveClient.HttpProvider as HttpProvider; httpProvider.Dispose(); this.oneDriveClient = null; } else { PresentOneDriveException(exception); } } } }