void DoScan(IImportSource source, bool recurse, bool merge, CancellationToken token)
        {
            FireEvent(ImportEvent.PhotoScanStarted);

            foreach (var info in source.ScanPhotos(recurse, merge))
            {
                ThreadAssist.ProxyToMain(() => Photos.Add(info));
                if (token.IsCancellationRequested)
                {
                    break;
                }
            }

            FireEvent(ImportEvent.PhotoScanFinished);
        }