~ruther/NosSmooth

b041feaccba349217af9102a5b69810da45d760c — Rutherther 2 years ago 55152bd
fix(core): register contract after first state was executed
1 files changed, 4 insertions(+), 3 deletions(-)

M Core/NosSmooth.Core/Contracts/DefaultContract.cs
M Core/NosSmooth.Core/Contracts/DefaultContract.cs => Core/NosSmooth.Core/Contracts/DefaultContract.cs +4 -3
@@ 124,7 124,8 @@ public class DefaultContract<TData, TState, TError> : IContract<TData, TState>
    {
        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<TData, TState, TError> : IContract<TData, TState>
        _unregisterAtWaitingFor = unregisterAfter;
        _waitCancellationSource = CancellationTokenSource.CreateLinkedTokenSource(ct);

        Register();

        if (CurrentState.CompareTo(_defaultState) == 0)
        {
            var result = await OnlyExecuteAsync(ct);


@@ 214,6 213,8 @@ public class DefaultContract<TData, TState, TError> : IContract<TData, TState>
            }
        }

        Register();

        try
        {
            await Task.Delay(-1, _waitCancellationSource.Token);

Do not follow this link