private async Task HandlePart(WorkPart part, CancellationToken cancellationToken)
        {
            var items = part.WorkItems;
            var tasks = items
                        .Select(w => w.Run(cancellationToken))
                        .ToList();

            while (tasks.Count != 0)
            {
                var completed = await Task.WhenAny(tasks);

                tasks.Remove(completed);
                var logMessage = BuildStatus();
                logger.LogInformation(logMessage);
                var workItem = items.SingleOrDefault(w => w.Id == completed.Result);
            }
        }
 private static char WorkPartIcon(WorkPart part)
 {
     return(TaskIcon(part.Status));
 }