public void NotifyPrepareDrop(VirtualDataObject sender, string format) { FileDropDataObject dataObject = sender as FileDropDataObject; foreach (var m in _models) { if (m.Profile is IDiskProfile) { var mapping = (m.Profile as IDiskProfile).DiskIO.Mapper[m]; if (mapping != null && !mapping.IsCached) { AsyncUtils.RunSync(() => (m.Profile as IDiskProfile).DiskIO .WriteToCacheAsync(m, CancellationToken.None) ); } } } //AsyncUtils.RunSync(() => Task.Run(async () => // { // foreach (var m in _models) // if (m.Profile is IDiskProfile) // { // var mapping = (m.Profile as IDiskProfile).DiskIO.Mapper[m]; // if (mapping != null && !mapping.IsCached) // await (m.Profile as IDiskProfile).DiskIO.WriteToCacheAsync(m, CancellationToken.None); // } // })); }
private IDataObject getDataObject(IEnumerable <IEntryModel> entries) { entries = entries.Select(m => m is IConvertedEntryModel ? (m as IConvertedEntryModel).OriginalEntryModel : m); //if (entries.Any(e => _getIsVirtualFunc(e))) //{ var retVal = new FileDropDataObject(new HandleFileDropped(entries.ToArray())); retVal.SetFileDropData(entries .Where(m => m.Profile is IDiskProfile) .Select(m => _getIsVirtualFunc(m) ? (IFileDropItem) new VirtualFileDrop((m.Profile as IDiskProfile).DiskIO.Mapper[m].IOPath, m.IsDirectory) : new FileDrop((m.Profile as IDiskProfile).DiskIO.Mapper[m].IOPath, m.IsDirectory)) .Where(fd => fd.FileSystemPath != null) .ToArray()); return(retVal); //} //else return new DataObject(DataFormats.FileDrop, // entries.Select(e => (e.Profile as IDiskProfile).DiskIO.Mapper[e].IOPath).ToArray() // ); }