diff --git a/README.md b/README.md index bd4befc..940c3a1 100644 --- a/README.md +++ b/README.md @@ -256,7 +256,7 @@ public event EventHandler CanExecuteChanged remove => _canExecuteChangedEventManager.RemoveEventHandler(value); } -void OnCanExecuteChanged() => _canExecuteChangedEventManager.HandleEvent(this, EventArgs.Empty, nameof(CanExecuteChanged)); +void OnCanExecuteChanged() => _canExecuteChangedEventManager.RaiseEvent(this, EventArgs.Empty, nameof(CanExecuteChanged)); ``` #### Using `Delegate` @@ -270,7 +270,7 @@ public event PropertyChangedEventHandler PropertyChanged remove => _propertyChangedEventManager.RemoveEventHandler(value); } -void OnPropertyChanged([CallerMemberName]string propertyName = "") => _propertyChangedEventManager.HandleEvent(this, new PropertyChangedEventArgs(propertyName), nameof(PropertyChanged)); +void OnPropertyChanged([CallerMemberName]string propertyName = "") => _propertyChangedEventManager.RaiseEvent(this, new PropertyChangedEventArgs(propertyName), nameof(PropertyChanged)); ``` #### Using `Action` @@ -284,7 +284,7 @@ public event Action ActionEvent remove => _weakActionEventManager.RemoveEventHandler(value); } -void OnActionEvent(string message) => _weakActionEventManager.HandleEvent(message, nameof(ActionEvent)); +void OnActionEvent(string message) => _weakActionEventManager.RaiseEvent(message, nameof(ActionEvent)); ``` ### `WeakEventManager` @@ -303,7 +303,7 @@ public event EventHandler ErrorOcurred remove => _errorOcurredEventManager.RemoveEventHandler(value); } -void OnErrorOcurred(string message) => _errorOcurredEventManager.HandleEvent(this, message, nameof(ErrorOcurred)); +void OnErrorOcurred(string message) => _errorOcurredEventManager.RaiseEvent(this, message, nameof(ErrorOcurred)); ``` #### Using `Action` @@ -317,7 +317,7 @@ public event Action ActionEvent remove => _weakActionEventManager.RemoveEventHandler(value); } -void OnActionEvent(string message) => _weakActionEventManager.HandleEvent(message, nameof(ActionEvent)); +void OnActionEvent(string message) => _weakActionEventManager.RaiseEvent(message, nameof(ActionEvent)); ``` ## AsyncAwaitBestPractices.MVVM diff --git a/Src/AsyncAwaitBestPractices.MVVM.nuspec b/Src/AsyncAwaitBestPractices.MVVM.nuspec index 5fba728..647c91c 100644 --- a/Src/AsyncAwaitBestPractices.MVVM.nuspec +++ b/Src/AsyncAwaitBestPractices.MVVM.nuspec @@ -2,7 +2,7 @@ AsyncAwaitBestPractices.MVVM - 4.1.1 + 4.2.0 Async Extensions for ICommand Brandon Minnick, John Thiriet Brandon Minnick @@ -24,13 +24,13 @@ task, valuetask, fire and forget, threading, extensions, system.threading.tasks, async, await - + New In This Release: - - Add Extension Methods Without `in` Keyword (provides support for older versions of Visual Studio) + - Deprecate WeakEventManager.HandleEvent API, Replacing it with WeakEventManager.RaiseEvent - + Copyright (c) 2020 Brandon Minnick diff --git a/Src/AsyncAwaitBestPractices.MVVM/AsyncCommand.cs b/Src/AsyncAwaitBestPractices.MVVM/AsyncCommand.cs index efb3607..215012a 100644 --- a/Src/AsyncAwaitBestPractices.MVVM/AsyncCommand.cs +++ b/Src/AsyncAwaitBestPractices.MVVM/AsyncCommand.cs @@ -53,7 +53,7 @@ public event EventHandler CanExecuteChanged /// /// Raises the CanExecuteChanged event. /// - public void RaiseCanExecuteChanged() => _weakEventManager.HandleEvent(this, EventArgs.Empty, nameof(CanExecuteChanged)); + public void RaiseCanExecuteChanged() => _weakEventManager.RaiseEvent(this, EventArgs.Empty, nameof(CanExecuteChanged)); /// /// Executes the Command as a Task @@ -133,7 +133,7 @@ public event EventHandler CanExecuteChanged /// /// Raises the CanExecuteChanged event. /// - public void RaiseCanExecuteChanged() => _weakEventManager.HandleEvent(this, EventArgs.Empty, nameof(CanExecuteChanged)); + public void RaiseCanExecuteChanged() => _weakEventManager.RaiseEvent(this, EventArgs.Empty, nameof(CanExecuteChanged)); /// /// Executes the Command as a Task diff --git a/Src/AsyncAwaitBestPractices.MVVM/AsyncValueCommand.cs b/Src/AsyncAwaitBestPractices.MVVM/AsyncValueCommand.cs index 996e94c..0b79ef9 100644 --- a/Src/AsyncAwaitBestPractices.MVVM/AsyncValueCommand.cs +++ b/Src/AsyncAwaitBestPractices.MVVM/AsyncValueCommand.cs @@ -53,7 +53,7 @@ public event EventHandler CanExecuteChanged /// /// Raises the CanExecuteChanged event. /// - public void RaiseCanExecuteChanged() => _weakEventManager.HandleEvent(this, EventArgs.Empty, nameof(CanExecuteChanged)); + public void RaiseCanExecuteChanged() => _weakEventManager.RaiseEvent(this, EventArgs.Empty, nameof(CanExecuteChanged)); /// /// Executes the Command as a Task @@ -132,7 +132,7 @@ public event EventHandler CanExecuteChanged /// /// Raises the CanExecuteChanged event. /// - public void RaiseCanExecuteChanged() => _weakEventManager.HandleEvent(this, EventArgs.Empty, nameof(CanExecuteChanged)); + public void RaiseCanExecuteChanged() => _weakEventManager.RaiseEvent(this, EventArgs.Empty, nameof(CanExecuteChanged)); /// /// Executes the Command as a Task diff --git a/Src/AsyncAwaitBestPractices.UnitTests/AsyncAwaitBestPractices.UnitTests.csproj b/Src/AsyncAwaitBestPractices.UnitTests/AsyncAwaitBestPractices.UnitTests.csproj index 18aba4c..acf81cc 100644 --- a/Src/AsyncAwaitBestPractices.UnitTests/AsyncAwaitBestPractices.UnitTests.csproj +++ b/Src/AsyncAwaitBestPractices.UnitTests/AsyncAwaitBestPractices.UnitTests.csproj @@ -9,7 +9,7 @@ - runtime; build; native; contentfiles; analyzers; buildtransitive + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_Action.cs b/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_Action.cs old mode 100755 new mode 100644 index f0ff2dd..43dc704 --- a/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_Action.cs +++ b/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_Action.cs @@ -27,7 +27,7 @@ void HandleDelegateTest() } //Act - _actionEventManager.HandleEvent(nameof(ActionEvent)); + _actionEventManager.RaiseEvent(nameof(ActionEvent)); //Assert Assert.IsTrue(didEventFire); @@ -43,7 +43,7 @@ public void WeakEventManagerAction_HandleEvent_InvalidHandleEventEventName() void HandleDelegateTest() => didEventFire = true; //Act - _actionEventManager.HandleEvent(nameof(TestStringEvent)); + _actionEventManager.RaiseEvent(nameof(TestStringEvent)); //Assert Assert.False(didEventFire); @@ -61,7 +61,7 @@ public void WeakEventManagerAction_UnassignedEvent() void HandleDelegateTest() => didEventFire = true; //Act - _actionEventManager.HandleEvent(nameof(ActionEvent)); + _actionEventManager.RaiseEvent(nameof(ActionEvent)); //Assert Assert.IsFalse(didEventFire); @@ -78,7 +78,7 @@ public void WeakEventManagerAction_UnassignedEventManager() void HandleDelegateTest() => didEventFire = true; //Act - unassignedEventManager.HandleEvent(nameof(ActionEvent)); + unassignedEventManager.RaiseEvent(nameof(ActionEvent)); //Assert Assert.IsFalse(didEventFire); @@ -97,7 +97,7 @@ public void WeakEventManagerAction_HandleEvent_InvalidHandleEvent() //Act //Assert - Assert.Throws(() => _actionEventManager.HandleEvent(this, EventArgs.Empty, nameof(ActionEvent))); + Assert.Throws(() => _actionEventManager.RaiseEvent(this, EventArgs.Empty, nameof(ActionEvent))); Assert.IsFalse(didEventFire); ActionEvent -= HandleDelegateTest; } diff --git a/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_ActionT.cs b/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_ActionT.cs old mode 100755 new mode 100644 index c056051..bada9be --- a/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_ActionT.cs +++ b/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_ActionT.cs @@ -30,7 +30,7 @@ void HandleDelegateTest(string message) } //Act - _actionEventManager.HandleEvent("Test", nameof(ActionEvent)); + _actionEventManager.RaiseEvent("Test", nameof(ActionEvent)); //Assert Assert.IsTrue(didEventFire); @@ -52,7 +52,7 @@ void HandleDelegateTest(string message) } //Act - _actionEventManager.HandleEvent("Test", nameof(TestEvent)); + _actionEventManager.RaiseEvent("Test", nameof(TestEvent)); //Assert Assert.False(didEventFire); @@ -76,7 +76,7 @@ void HandleDelegateTest(string message) } //Act - _actionEventManager.HandleEvent("Test", nameof(ActionEvent)); + _actionEventManager.RaiseEvent("Test", nameof(ActionEvent)); //Assert Assert.IsFalse(didEventFire); @@ -99,7 +99,7 @@ void HandleDelegateTest(string message) } //Act - unassignedEventManager.HandleEvent(nameof(ActionEvent)); + unassignedEventManager.RaiseEvent(nameof(ActionEvent)); //Assert Assert.IsFalse(didEventFire); @@ -124,7 +124,7 @@ void HandleDelegateTest(string message) //Act //Assert - Assert.Throws(() => _actionEventManager.HandleEvent(this, "Test", nameof(ActionEvent))); + Assert.Throws(() => _actionEventManager.RaiseEvent(this, "Test", nameof(ActionEvent))); Assert.IsFalse(didEventFire); ActionEvent -= HandleDelegateTest; } diff --git a/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_Delegate.cs b/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_Delegate.cs old mode 100755 new mode 100644 index cc81537..b3f4160 --- a/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_Delegate.cs +++ b/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_Delegate.cs @@ -33,7 +33,7 @@ void HandleDelegateTest(object sender, PropertyChangedEventArgs e) } //Act - _propertyChangedWeakEventManager.HandleEvent(this, new PropertyChangedEventArgs("Test"), nameof(PropertyChanged)); + _propertyChangedWeakEventManager.RaiseEvent(this, new PropertyChangedEventArgs("Test"), nameof(PropertyChanged)); //Assert Assert.IsTrue(didEventFire); @@ -56,7 +56,7 @@ void HandleDelegateTest(object sender, PropertyChangedEventArgs e) } //Act - _propertyChangedWeakEventManager.HandleEvent(null, new PropertyChangedEventArgs("Test"), nameof(PropertyChanged)); + _propertyChangedWeakEventManager.RaiseEvent(null, new PropertyChangedEventArgs("Test"), nameof(PropertyChanged)); //Assert Assert.IsTrue(didEventFire); @@ -74,7 +74,7 @@ public void WeakEventManagerDelegate_HandleEvent_InvalidEventArgs() //Act //Assert - Assert.Throws(() => _propertyChangedWeakEventManager.HandleEvent(this, EventArgs.Empty, nameof(PropertyChanged))); + Assert.Throws(() => _propertyChangedWeakEventManager.RaiseEvent(this, EventArgs.Empty, nameof(PropertyChanged))); Assert.IsFalse(didEventFire); PropertyChanged -= HandleDelegateTest; } @@ -99,7 +99,7 @@ void HandleDelegateTest(object sender, PropertyChangedEventArgs e) //Act #pragma warning disable CS8625 //Cannot convert null literal to non-nullable reference type - _propertyChangedWeakEventManager.HandleEvent(this, null, nameof(PropertyChanged)); + _propertyChangedWeakEventManager.RaiseEvent(this, null, nameof(PropertyChanged)); #pragma warning restore CS8625 //Cannot convert null literal to non-nullable reference type //Assert @@ -116,7 +116,7 @@ public void WeakEventManagerDelegate_HandleEvent_InvalidHandleEventEventName() void HandleDelegateTest(object sender, PropertyChangedEventArgs e) => didEventFire = true; //Act - _propertyChangedWeakEventManager.HandleEvent(this, new PropertyChangedEventArgs("Test"), nameof(TestStringEvent)); + _propertyChangedWeakEventManager.RaiseEvent(this, new PropertyChangedEventArgs("Test"), nameof(TestStringEvent)); //Assert Assert.False(didEventFire); @@ -135,7 +135,7 @@ public void WeakEventManagerDelegate_UnassignedEvent() //Act #pragma warning disable CS8625 //Cannot convert null literal to non-nullable reference type - _propertyChangedWeakEventManager.HandleEvent(null, null, nameof(PropertyChanged)); + _propertyChangedWeakEventManager.RaiseEvent(null, null, nameof(PropertyChanged)); #pragma warning restore CS8625 //Cannot convert null literal to non-nullable reference type //Assert @@ -153,7 +153,7 @@ public void WeakEventManagerDelegate_UnassignedEventManager() void HandleDelegateTest(object sender, PropertyChangedEventArgs e) => didEventFire = true; //Act - unassignedEventManager.HandleEvent(null, null, nameof(PropertyChanged)); + unassignedEventManager.RaiseEvent(null, null, nameof(PropertyChanged)); //Assert Assert.IsFalse(didEventFire); @@ -172,7 +172,7 @@ public void WeakEventManagerDelegate_HandleEvent_InvalidHandleEvent() //Act //Assert - Assert.Throws(() => _propertyChangedWeakEventManager.HandleEvent(nameof(PropertyChanged))); + Assert.Throws(() => _propertyChangedWeakEventManager.RaiseEvent(nameof(PropertyChanged))); Assert.IsFalse(didEventFire); PropertyChanged -= HandleDelegateTest; } diff --git a/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_EventHandler.cs b/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_EventHandler.cs old mode 100755 new mode 100644 index fb08b1f..aed1e33 --- a/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_EventHandler.cs +++ b/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_EventHandler.cs @@ -27,7 +27,7 @@ void HandleTestEvent(object? sender, EventArgs e) } //Act - TestWeakEventManager.HandleEvent(this, new EventArgs(), nameof(TestEvent)); + TestWeakEventManager.RaiseEvent(this, new EventArgs(), nameof(TestEvent)); //Assert Assert.IsTrue(didEventFire); @@ -50,7 +50,7 @@ void HandleTestEvent(object? sender, EventArgs e) } //Act - TestWeakEventManager.HandleEvent(null, new EventArgs(), nameof(TestEvent)); + TestWeakEventManager.RaiseEvent(null, new EventArgs(), nameof(TestEvent)); //Assert Assert.IsTrue(didEventFire); @@ -79,7 +79,7 @@ void HandleTestEvent(object? sender, EventArgs e) } //Act - TestWeakEventManager.HandleEvent(this, EventArgs.Empty, nameof(TestEvent)); + TestWeakEventManager.RaiseEvent(this, EventArgs.Empty, nameof(TestEvent)); //Assert Assert.IsTrue(didEventFire); @@ -108,7 +108,7 @@ void HandleTestEvent(object? sender, EventArgs e) //Act #pragma warning disable CS8625 //Cannot convert null literal to non-nullable reference type - TestWeakEventManager.HandleEvent(this, null, nameof(TestEvent)); + TestWeakEventManager.RaiseEvent(this, null, nameof(TestEvent)); #pragma warning restore CS8625 //Assert @@ -125,7 +125,7 @@ public void WeakEventManager_HandleEvent_InvalidHandleEventName() void HandleTestEvent(object? sender, EventArgs e) => didEventFire = true; //Act - TestWeakEventManager.HandleEvent(this, new EventArgs(), nameof(TestStringEvent)); + TestWeakEventManager.RaiseEvent(this, new EventArgs(), nameof(TestStringEvent)); //Assert Assert.False(didEventFire); @@ -143,7 +143,7 @@ public void WeakEventManager_UnassignedEvent() void HandleTestEvent(object? sender, EventArgs e) => didEventFire = true; //Act - TestWeakEventManager.HandleEvent(null, null, nameof(TestEvent)); + TestWeakEventManager.RaiseEvent(null, null, nameof(TestEvent)); //Assert Assert.IsFalse(didEventFire); @@ -160,7 +160,7 @@ public void WeakEventManager_UnassignedEventManager() void HandleTestEvent(object? sender, EventArgs e) => didEventFire = true; //Act - unassignedEventManager.HandleEvent(null, null, nameof(TestEvent)); + unassignedEventManager.RaiseEvent(null, null, nameof(TestEvent)); //Assert Assert.IsFalse(didEventFire); @@ -283,7 +283,7 @@ public void WeakEventManager_HandleEvent_InvalidHandleEvent() //Act //Assert - Assert.Throws(() => TestWeakEventManager.HandleEvent(nameof(TestEvent))); + Assert.Throws(() => TestWeakEventManager.RaiseEvent(nameof(TestEvent))); Assert.IsFalse(didEventFire); TestEvent -= HandleTestEvent; } diff --git a/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_EventHandlerT.cs b/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_EventHandlerT.cs old mode 100755 new mode 100644 index 4220493..0525da6 --- a/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_EventHandlerT.cs +++ b/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManager Tests/Tests_WeakEventManager_EventHandlerT.cs @@ -30,7 +30,7 @@ void HandleTestEvent(object? sender, string? e) } //Act - TestStringWeakEventManager.HandleEvent(this, stringEventArg, nameof(TestStringEvent)); + TestStringWeakEventManager.RaiseEvent(this, stringEventArg, nameof(TestStringEvent)); //Assert Assert.IsTrue(didEventFire); @@ -58,7 +58,7 @@ void HandleTestEvent(object? sender, string e) } //Act - TestStringWeakEventManager.HandleEvent(null, stringEventArg, nameof(TestStringEvent)); + TestStringWeakEventManager.RaiseEvent(null, stringEventArg, nameof(TestStringEvent)); //Assert Assert.IsTrue(didEventFire); @@ -87,7 +87,7 @@ void HandleTestEvent(object? sender, string e) //Act #pragma warning disable CS8625 //Cannot convert null literal to non-nullable reference type - TestStringWeakEventManager.HandleEvent(this, null, nameof(TestStringEvent)); + TestStringWeakEventManager.RaiseEvent(this, null, nameof(TestStringEvent)); #pragma warning restore CS8625 //Assert @@ -105,7 +105,7 @@ public void WeakEventManagerTEventArgs_HandleEvent_InvalidHandleEvent() void HandleTestEvent(object? sender, string e) => didEventFire = true; //Act - TestStringWeakEventManager.HandleEvent(this, "Test", nameof(TestEvent)); + TestStringWeakEventManager.RaiseEvent(this, "Test", nameof(TestEvent)); //Assert Assert.False(didEventFire); @@ -122,7 +122,7 @@ public void WeakEventManager_NullEventManager() //Assert #pragma warning disable CS8602 //Dereference of a possible null reference - Assert.Throws(() => unassignedEventManager.HandleEvent(null, null, nameof(TestEvent))); + Assert.Throws(() => unassignedEventManager.RaiseEvent(null, null, nameof(TestEvent))); #pragma warning restore CS8602 } @@ -138,7 +138,7 @@ public void WeakEventManagerTEventArgs_UnassignedEventManager() //Act #pragma warning disable CS8625 //Cannot convert null literal to non-nullable reference type - unassignedEventManager.HandleEvent(null, null, nameof(TestStringEvent)); + unassignedEventManager.RaiseEvent(null, null, nameof(TestStringEvent)); #pragma warning restore CS8625 //Assert @@ -157,7 +157,7 @@ public void WeakEventManagerTEventArgs_UnassignedEvent() void HandleTestEvent(object? sender, string e) => didEventFire = true; //Act - TestStringWeakEventManager.HandleEvent(this, "Test", nameof(TestStringEvent)); + TestStringWeakEventManager.RaiseEvent(this, "Test", nameof(TestStringEvent)); //Assert Assert.IsFalse(didEventFire); @@ -272,7 +272,7 @@ public void WeakEventManagerT_HandleEvent_InvalidHandleEvent() //Act //Assert - Assert.Throws(() => TestStringWeakEventManager.HandleEvent("", nameof(TestStringEvent))); + Assert.Throws(() => TestStringWeakEventManager.RaiseEvent("", nameof(TestStringEvent))); Assert.IsFalse(didEventFire); TestStringEvent -= HandleTestStringEvent; } diff --git a/Src/AsyncAwaitBestPractices.nuspec b/Src/AsyncAwaitBestPractices.nuspec index 0b768be..6d6bac7 100644 --- a/Src/AsyncAwaitBestPractices.nuspec +++ b/Src/AsyncAwaitBestPractices.nuspec @@ -2,7 +2,7 @@ AsyncAwaitBestPractices - 4.1.1 + 4.2.0 Task Extensions for System.Threading.Tasks Brandon Minnick, John Thiriet Brandon Minnick @@ -53,9 +53,9 @@ New In This Release: - - Add Extension Methods Without `in` Keyword (provides support for older versions of Visual Studio) + - Deprecate WeakEventManager.HandleEvent API, replacing it with WeakEventManager.RaiseEvent - + Copyright (c) 2020 Brandon Minnick diff --git a/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.cs b/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.cs index 0764b34..c4a1463 100644 --- a/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.cs +++ b/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.cs @@ -80,21 +80,38 @@ public void RemoveEventHandler(in Action action, [CallerMemberName] } /// - /// Executes the event EventHandler + /// Invokes the event EventHandler /// /// Sender /// Event arguments /// Event name - public void HandleEvent(in object? sender, in TEventArgs eventArgs, in string eventName) => + public void RaiseEvent(in object? sender, in TEventArgs eventArgs, in string eventName) => EventManagerService.HandleEvent(eventName, sender, eventArgs, _eventHandlers); /// - /// Executes the event Action + /// Invokes the event Action /// /// Event arguments /// Event name - public void HandleEvent(in TEventArgs eventArgs, in string eventName) => + public void RaiseEvent(in TEventArgs eventArgs, in string eventName) => EventManagerService.HandleEvent(eventName, eventArgs, _eventHandlers); + + /// + /// Invokes the event EventHandler + /// + /// Sender + /// Event arguments + /// Event name + [Obsolete("Use RaiseEvent instead")] + public void HandleEvent(in object? sender, in TEventArgs eventArgs, in string eventName) => RaiseEvent(sender, eventArgs, eventName); + + /// + /// Invokes the event Action + /// + /// Event arguments + /// Event name + [Obsolete("Use RaiseEvent instead")] + public void HandleEvent(in TEventArgs eventArgs, in string eventName) => RaiseEvent(eventArgs, eventName); } /// @@ -137,18 +154,34 @@ public void RemoveEventHandler(in Delegate handler, [CallerMemberName] in string } /// - /// Executes the event EventHandler + /// Invokes the event EventHandler /// /// Sender /// Event arguments /// Event name - public void HandleEvent(in object? sender, in object? eventArgs, in string eventName) => + public void RaiseEvent(in object? sender, in object? eventArgs, in string eventName) => EventManagerService.HandleEvent(eventName, sender, eventArgs, _eventHandlers); /// - /// Executes the event Action + /// Invokes the event Action + /// + /// Event name + public void RaiseEvent(in string eventName) => EventManagerService.HandleEvent(eventName, _eventHandlers); + + /// + /// Invokes the event EventHandler + /// + /// Sender + /// Event arguments + /// Event name + [Obsolete("Use RaiseEvent instead")] + public void HandleEvent(in object? sender, in object? eventArgs, in string eventName) => RaiseEvent(sender, eventArgs, eventName); + + /// + /// Invokes the event Action /// /// Event name - public void HandleEvent(in string eventName) => EventManagerService.HandleEvent(eventName, _eventHandlers); + [Obsolete("Use RaiseEvent instead")] + public void HandleEvent(in string eventName) => RaiseEvent(eventName); } } \ No newline at end of file diff --git a/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.extensions.cs b/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.extensions.cs index 850f11e..dff51e4 100644 --- a/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.extensions.cs +++ b/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.extensions.cs @@ -3,10 +3,6 @@ namespace AsyncAwaitBestPractices { - /// - /// Weak event manager that allows for garbage collection when the EventHandler is still subscribed - /// - /// Event args type. public partial class WeakEventManager { /// @@ -38,19 +34,36 @@ public partial class WeakEventManager public void RemoveEventHandler(Action action, [CallerMemberName] string eventName = "") => RemoveEventHandler(in action, in eventName); /// - /// Executes the event EventHandler + /// Invokes the event EventHandler + /// + /// Sender + /// Event arguments + /// Event name + public void RaiseEvent(object? sender, TEventArgs eventArgs, string eventName) => RaiseEvent(in sender, in eventArgs, in eventName); + + /// + /// Invokes the event Action + /// + /// Event arguments + /// Event name + public void RaiseEvent(TEventArgs eventArgs, string eventName) => RaiseEvent(in eventArgs, in eventName); + + /// + /// Invokes the event EventHandler /// /// Sender /// Event arguments /// Event name - public void HandleEvent(object? sender, TEventArgs eventArgs, string eventName) => HandleEvent(in sender, in eventArgs, in eventName); + [Obsolete("Use RaiseEvent instead")] + public void HandleEvent(object? sender, TEventArgs eventArgs, string eventName) => RaiseEvent(sender, eventArgs, eventName); /// - /// Executes the event Action + /// Invokes the event Action /// /// Event arguments /// Event name - public void HandleEvent(TEventArgs eventArgs, string eventName) => HandleEvent(in eventArgs, in eventName); + [Obsolete("Use RaiseEvent instead")] + public void HandleEvent(TEventArgs eventArgs, string eventName) => RaiseEvent(eventArgs, eventName); } /// @@ -73,17 +86,33 @@ public partial class WeakEventManager public void RemoveEventHandler(Delegate handler, [CallerMemberName] string eventName = "") => RemoveEventHandler(in handler, in eventName); /// - /// Executes the event EventHandler + /// Invokes the event EventHandler + /// + /// Sender + /// Event arguments + /// Event name + public void RaiseEvent(object? sender, object? eventArgs, string eventName) => RaiseEvent(in sender, in eventArgs, in eventName); + + /// + /// Invokes the event Action + /// + /// Event name + public void RaiseEvent(string eventName) => RaiseEvent(in eventName); + + /// + /// Invokes the event EventHandler /// /// Sender /// Event arguments /// Event name - public void HandleEvent(object? sender, object? eventArgs, string eventName) => HandleEvent(in sender, in eventArgs, in eventName); + [Obsolete("Use RaiseEvent instead")] + public void HandleEvent(object? sender, object? eventArgs, string eventName) => RaiseEvent(sender, eventArgs, eventName); /// - /// Executes the event Action + /// Invokes the event Action /// /// Event name - public void HandleEvent(string eventName) => HandleEvent(in eventName); + [Obsolete("Use RaiseEvent instead")] + public void HandleEvent(string eventName) => RaiseEvent(eventName); } } \ No newline at end of file diff --git a/Src/HackerNews.Droid/HackerNews.Droid.csproj b/Src/HackerNews.Droid/HackerNews.Droid.csproj index a25d363..f53188c 100644 --- a/Src/HackerNews.Droid/HackerNews.Droid.csproj +++ b/Src/HackerNews.Droid/HackerNews.Droid.csproj @@ -64,7 +64,7 @@ - + diff --git a/Src/HackerNews.UITests/AppInitializer.cs b/Src/HackerNews.UITests/AppInitializer.cs index abee18c..8e3cf6b 100644 --- a/Src/HackerNews.UITests/AppInitializer.cs +++ b/Src/HackerNews.UITests/AppInitializer.cs @@ -5,17 +5,11 @@ namespace HackerNews.UITests { public static class AppInitializer { - public static IApp StartApp(Platform platform) + public static IApp StartApp(Platform platform) => platform switch { - switch (platform) - { - case Platform.Android: - return ConfigureApp.Android.StartApp(Xamarin.UITest.Configuration.AppDataMode.Clear); - case Platform.iOS: - return ConfigureApp.iOS.StartApp(Xamarin.UITest.Configuration.AppDataMode.Clear); - default: - throw new NotSupportedException(); - } - } + Platform.Android => ConfigureApp.Android.StartApp(Xamarin.UITest.Configuration.AppDataMode.Clear), + Platform.iOS => ConfigureApp.iOS.StartApp(Xamarin.UITest.Configuration.AppDataMode.Clear), + _ => throw new NotSupportedException(), + }; } } diff --git a/Src/HackerNews.UITests/Tests/BaseTest.cs b/Src/HackerNews.UITests/Tests/BaseTest.cs index 1859ad5..7308a03 100644 --- a/Src/HackerNews.UITests/Tests/BaseTest.cs +++ b/Src/HackerNews.UITests/Tests/BaseTest.cs @@ -1,4 +1,5 @@ -using NUnit.Framework; +using System; +using NUnit.Framework; using Xamarin.UITest; @@ -10,19 +11,21 @@ public abstract class BaseTest { readonly Platform _platform; + IApp? _app; + NewsPage? _newsPage; + protected BaseTest(Platform platform) => _platform = platform; - protected IApp App { get; private set; } - protected NewsPage NewsPage { get; private set; } + protected IApp App => _app ?? throw new NullReferenceException(); + protected NewsPage NewsPage => _newsPage ?? throw new NullReferenceException(); [SetUp] public virtual void BeforeEachTest() { - App = AppInitializer.StartApp(_platform); - App.Screenshot("App Initialized"); - - NewsPage = new NewsPage(App); + _app = AppInitializer.StartApp(_platform); + _newsPage = new NewsPage(App); + App.Screenshot("App Initialized"); NewsPage.WaitForPageToLoad(); } diff --git a/Src/HackerNews.iOS/HackerNews.iOS.csproj b/Src/HackerNews.iOS/HackerNews.iOS.csproj index ab7dbae..1dc6c38 100644 --- a/Src/HackerNews.iOS/HackerNews.iOS.csproj +++ b/Src/HackerNews.iOS/HackerNews.iOS.csproj @@ -93,7 +93,7 @@ - + diff --git a/Src/HackerNews/HackerNews.csproj b/Src/HackerNews/HackerNews.csproj index 28c5126..ae17a92 100644 --- a/Src/HackerNews/HackerNews.csproj +++ b/Src/HackerNews/HackerNews.csproj @@ -8,7 +8,7 @@ - + diff --git a/Src/HackerNews/ViewModels/Base/BaseViewModel.cs b/Src/HackerNews/ViewModels/Base/BaseViewModel.cs index 7dabedb..5504183 100644 --- a/Src/HackerNews/ViewModels/Base/BaseViewModel.cs +++ b/Src/HackerNews/ViewModels/Base/BaseViewModel.cs @@ -80,6 +80,6 @@ static Task setIsBusy(bool isBusy) } void OnPropertyChanged([CallerMemberName]in string propertyName = "") => - _propertyChangedEventManager.HandleEvent(this, new PropertyChangedEventArgs(propertyName), nameof(INotifyPropertyChanged.PropertyChanged)); + _propertyChangedEventManager.RaiseEvent(this, new PropertyChangedEventArgs(propertyName), nameof(INotifyPropertyChanged.PropertyChanged)); } } diff --git a/Src/HackerNews/ViewModels/NewsViewModel_GoodAsyncAwaitPractices.cs b/Src/HackerNews/ViewModels/NewsViewModel_GoodAsyncAwaitPractices.cs index 258dda5..68fd44f 100644 --- a/Src/HackerNews/ViewModels/NewsViewModel_GoodAsyncAwaitPractices.cs +++ b/Src/HackerNews/ViewModels/NewsViewModel_GoodAsyncAwaitPractices.cs @@ -91,6 +91,6 @@ async ValueTask> GetTopStoryIDs() } } - void OnErrorOccurred(string message) => _errorOccurredEventManager.HandleEvent(this, message, nameof(ErrorOccurred)); + void OnErrorOccurred(string message) => _errorOccurredEventManager.RaiseEvent(this, message, nameof(ErrorOccurred)); } }