/// <summary>
        /// Logs in the user with the specified provider.
        /// </summary>
        /// <param name="provider">User credentials provider.</param>
        private void LoginWith(string provider)
        {
            // If already logging in
            if (this.IsBusy)
            {
                return;
            }

            // Remove OAUTH token
            Settings.Instance.Remove(Settings.OauthToken);

            // If launch URI delegate is provided
            if (((App)Application.Current).LaunchUriDelegate != null)
            {
                // Get the authorization URI from the server
                this.IsBusy = true;
                WebHelper.SendAsync(
                    Uris.GetAuthorizationUri(provider),
                    null,
                    this.ProcessLoginWithResult,
                    () => this.IsBusy = false);
            }
            else
            {
                // Display the not implemented error
                App.DisplayAlert(
                    Localization.ErrorDialogTitle,
                    Localization.ErrorNotImplemented,
                    Localization.DialogDismiss);
            }
        }