コード例 #1
0
        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);
            //            }
            //    }));
        }
コード例 #2
0
        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()
            //    );
        }