public void Enumerate(Action itemsAvailable = null)
{
logger.Info("Enumeration started");
MediaList.Clear();
MediaCollector collector = new MediaCollector(MediaList) { ItemsAvailable = itemsAvailable } ;
collector.Start(3);
var tasks = new List<Task>();
if (FolderList.Count > 0)
{
tasks.Add(Task.Run( () =>
{
var p = new FileProvider(Path.GetDirectoryName(Filename), FolderList);
p.Enumerate(collector, itemsAvailable);
}));
}
if (Search != null)
{
tasks.Add(Task.Run( () =>
{
var p = new FindAPhotoProvider(FindAPhotoHost, Search);
p.Enumerate(collector, itemsAvailable);
}));
}
Task.WaitAll(tasks.ToArray());
collector.WaitForCompletion();
logger.Info("Enumeration completed");
}