async Task MessageConsumer_TestCompletedOnSourceAsync(TestCompletedOnSourceMessage arg) { using var scope = ScopeFactory.CreateScope(); using var db = scope.ServiceProvider.GetRequiredService <RunnerContext>(); var runInfo = await db.TestRuns .IncludeGroup(API.Models.EntityGroups.ALL, db) .FirstAsync(r => r.TestId == arg.TestId); var result = runInfo.Results .FirstOrDefault(r => r.Id == arg.ResultId); if (result != null) // because it could have been deleted { if (result.ResultBase.Result != RunResult.Aborted) { arg.Result.TestId = arg.TestId; arg.Result.TestName = runInfo.TestName; arg.Result.StartedByUser = result.ResultBase.StartedByUser; result.ResultBase = arg.Result; await db.SaveChangesAsync(); MessageProducer.FireTestCompleted(new TestCompletedMessage() { TestId = runInfo.TestName, Result = arg.Result }); } } }