private async Task WaitJob() { _switch.SetStateAction(DoNothing); var job = await _krakerApi.GetJob(_agentId); _logger.Information("Got a job {0}", job); if (job == null || job is IncorrectJob or DoNothingJob) { _switch.SetStateAction(WaitJob); return; } _jobHandler = _jobHandlerProvider.Get(job); _jobHandler.Execute(); _switch.SetStateAction(ProcessJob); }