コード例 #1
0
        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
                    });
                }
            }
        }