From b041feaccba349217af9102a5b69810da45d760c Mon Sep 17 00:00:00 2001 From: Rutherther Date: Tue, 17 Jan 2023 22:52:37 +0100 Subject: [PATCH] fix(core): register contract after first state was executed --- Core/NosSmooth.Core/Contracts/DefaultContract.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Core/NosSmooth.Core/Contracts/DefaultContract.cs b/Core/NosSmooth.Core/Contracts/DefaultContract.cs index cc360a5..d4db4d1 100644 --- a/Core/NosSmooth.Core/Contracts/DefaultContract.cs +++ b/Core/NosSmooth.Core/Contracts/DefaultContract.cs @@ -124,7 +124,8 @@ public class DefaultContract : IContract { if (!_actions.ContainsKey(CurrentState)) { - throw new Exception(); // ? + Unregister(); + return ContractUpdateResponse.NotInterested; } var result = await _actions[CurrentState](data, ct); @@ -202,8 +203,6 @@ public class DefaultContract : IContract _unregisterAtWaitingFor = unregisterAfter; _waitCancellationSource = CancellationTokenSource.CreateLinkedTokenSource(ct); - Register(); - if (CurrentState.CompareTo(_defaultState) == 0) { var result = await OnlyExecuteAsync(ct); @@ -214,6 +213,8 @@ public class DefaultContract : IContract } } + Register(); + try { await Task.Delay(-1, _waitCancellationSource.Token); -- 2.49.0