Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added ProviderStateChanged event to ProviderManager #112

Merged
merged 4 commits into from
Jun 11, 2021

Conversation

shweaver-MSFT
Copy link
Member

Fixes #16

PR Type

What kind of change does this PR introduce?

  • Feature

What is the current behavior?

Currently, the ProviderUpdated event is used to check when any changes occur to the GlobalProvider instance in ProviderManager. This includes setting the IProvider instance or in response to authentication state changes.

ProviderManager.Instance.ProviderUpdated += OnProviderUpdated;

void OnProviderUpdated(object sender, ProviderUpdatedEventArgs e)
{
    if (e.Reason == ProviderManagerChangedState.ProviderChanged)
    {
        // The global provider instance was set.
    }

    if (e.Reason == ProviderManagerChangedState.ProviderStateChanged)
    {
        // The state of the global provider instance has changed.
    }
}

What is the new behavior?

I propose changing the ProviderUpdated event to only emit when the GlobalProvider instance itself is changed/set, while also introducing a new ProviderStateChanged event which should fire on provider state changes.

ProviderManager.Instance.ProviderUpdated += OnProviderUpdated;
ProviderManager.Instance.ProviderStateChanged += OnProviderStateChanged;

void OnProviderUpdated(object sender, IProvider provider)
{
    // The GlobalProvider instance has been set.
}

void OnProviderStateChanged(object sender, ProviderStateChangedEventArgs e)
{
    // The state of the GlobalProvider instance has changed.
}

The following classes are also no longer required and have been removed:

  • ProviderUpdatedEventArgs
  • ProviderManagerChangedState

PR Checklist

Please check if your PR fulfills the following requirements:

  • Tested code with current supported SDKs
  • Sample in sample app has been added / updated (for bug fixes / features)
  • Tests for the changes have been added (for bug fixes / features) (if applicable)
  • Header has been added to all new source files (run build/UpdateHeaders.bat)
  • Contains NO breaking changes

Other information

@shweaver-MSFT shweaver-MSFT self-assigned this Jun 8, 2021
@ghost
Copy link

ghost commented Jun 8, 2021

Thanks shweaver-MSFT for opening a Pull Request! The reviewers will test the PR and highlight if there is any merge conflict or changes required. If the PR is approved we will proceed to merge the pull request 🙌

@shweaver-MSFT shweaver-MSFT merged commit e875ff5 into dev/7.1.0 Jun 11, 2021
@shweaver-MSFT shweaver-MSFT deleted the shweaver/provider-events branch June 11, 2021 17:28
shweaver-MSFT added a commit that referenced this pull request Jun 11, 2021
* Added ProviderStateChanged event to ProviderManager and adjust ProviderUpdated usage

* Removed unused ProviderUpdatedEventArgs and ProviderManagerChangedState

* Fixed provider pattern in ProviderStateTrigger
shweaver-MSFT added a commit that referenced this pull request Jun 11, 2021
* Added ProviderStateChanged event to ProviderManager and adjust ProviderUpdated usage

* Removed unused ProviderUpdatedEventArgs and ProviderManagerChangedState

* Fixed provider pattern in ProviderStateTrigger
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants