private async Task ValidateSagaErrorAsync(ISagaGrain saga, SerializableErrorTranslator errorTranslator = null, Type expectedExceptionType = null) { var errorAsString = await saga.GetSagaError(); if (errorAsString != null) { Logger.LogInformation("Exception been thrown as expected"); if (errorTranslator != null) { ValidateErrorTranslate(errorAsString, errorTranslator, expectedExceptionType); } return; } Logger.LogError("Activity ran without throwing exceptions"); }
private async Task ValidateSagaAbortedSuccessfullyAsync(ISagaGrain saga) { var status = await saga.GetStatus(); Logger.LogInformation($"Saga end status is {status}"); }
/// <summary> /// Waits for a saga to complete by periodically querying it's status. /// </summary> /// <param name="that"></param> /// <param name="queryFrequency">How often to query the saga.</param> /// <returns></returns> public static async Task Wait(this ISagaGrain that, int queryFrequency = 1000) { await Wait(new ISagaGrain[] { that }, queryFrequency); }