public async Task ProcessActiveWorksAsync(IServiceProvider serviceProvider, CancellationToken cancellationToken) { var depended = _workService.GetWorksWithTypeTypeDependency().ToList(); if (depended.Any()) { await ProcessWorksAsync(depended, serviceProvider, cancellationToken); return; } var children = _workService.GetChildrenForCompletedWorks().ToList(); if (children.Any()) { await ProcessWorksAsync(children, serviceProvider, cancellationToken); return; } var rootWorks = _workService.GetRootWorks().ToList(); if (!rootWorks.Any()) { Events.WorksForWorkerNotFound(_logger); return; } await ProcessWorksAsync(rootWorks, serviceProvider, cancellationToken); }