public async Task Handle(Solution solution) { Current = solution; Status = ExecuteWorkerStatus.Build; var success = await builder.BuildSolution(solution); if (success) { var tasksForExercise = await getTests(solution.ExerciseId); Status = ExecuteWorkerStatus.Checking; await runner.RunAndCheckSolution(solution.Id, tasksForExercise); } Current = null; Status = ExecuteWorkerStatus.Wait; }