public override async Task <Stream> OpenStreamAsync(IEntryModel entryModel, FileExplorer.Defines.FileAccess access, CancellationToken ct) { //SevenZipWrapper wrapper = (Profile as SzsProfile).Wrapper; ISzsItemModel entryItemModel = entryModel as ISzsItemModel; //IEntryModel rootReferenceModel = itemModel.Root.ReferencedFile; //return new CompressMemoryStream(wrapper, rootReferenceModel, itemModel.RelativePath, access, ct); //To-DO: save to Profile.DiskIO.Mapper[itemModel].IOPath if (entryItemModel.Root.Equals(entryItemModel)) { IEntryModel referencedFile = entryItemModel.Root.ReferencedFile; return(await(referencedFile.Profile as IDiskProfile).DiskIO.OpenStreamAsync(referencedFile, access, ct)); } switch (access) { case FileExplorer.Defines.FileAccess.Read: return(await SzsFileStream.OpenReadAsync(entryModel, ct)); case FileExplorer.Defines.FileAccess.Write: return(SzsFileStream.OpenWrite(entryModel)); case FileExplorer.Defines.FileAccess.ReadWrite: return(await SzsFileStream.OpenReadWriteAsync(entryModel, ct)); } throw new NotSupportedException(); }
public OpenStreamCommand(IEntryModel entryModel, FileExplorer.Defines.FileAccess access, Func <IEntryModel, Stream, IScriptCommand> streamFunc, IScriptCommand thenCommand) : base("OpenStream", thenCommand) { if (!(entryModel.Profile is IDiskProfile)) { throw new ArgumentException("Profile isnt IDiskProfile."); } _entryModel = entryModel; _access = access; _streamFunc = streamFunc; }
public override async Task <Stream> OpenStreamAsync(IEntryModel entryModel, FileExplorer.Defines.FileAccess access, CancellationToken ct) { switch (access) { case FileExplorer.Defines.FileAccess.Read: return(await SkyDriveFileStream.OpenReadAsync(entryModel, ct)); case FileExplorer.Defines.FileAccess.Write: return(SkyDriveFileStream.OpenWrite(entryModel)); case FileExplorer.Defines.FileAccess.ReadWrite: return(await SkyDriveFileStream.OpenReadWriteAsync(entryModel, ct)); } throw new NotSupportedException(); }
public override async Task <Stream> OpenStreamAsync(IEntryModel entryModel, FileExplorer.Defines.FileAccess access, CancellationToken ct) { switch (access) { case FileExplorer.Defines.FileAccess.Read: return(File.OpenRead(entryModel.FullPath)); case FileExplorer.Defines.FileAccess.Write: return(File.OpenWrite(entryModel.FullPath)); case FileExplorer.Defines.FileAccess.ReadWrite: return(File.Open(entryModel.FullPath, FileMode.OpenOrCreate, FileAccess.ReadWrite)); } throw new NotImplementedException(); }
public override async Task <Stream> OpenStreamAsync(IEntryModel entryModel, FileExplorer.Defines.FileAccess access, CancellationToken ct) { switch (access) { case FileExplorer.Defines.FileAccess.Read: return(await GoogleDriveFileStream.OpenReadAsync(entryModel, () => (entryModel.Profile as GoogleDriveProfile).HttpClientFunc(), ct)); case FileExplorer.Defines.FileAccess.Write: return(GoogleDriveFileStream.OpenWrite(entryModel, () => (entryModel.Profile as GoogleDriveProfile).HttpClientFunc())); case FileExplorer.Defines.FileAccess.ReadWrite: return(await GoogleDriveFileStream.OpenReadWriteAsync(entryModel, () => (entryModel.Profile as GoogleDriveProfile).HttpClientFunc(), ct)); } throw new NotSupportedException(); }
public virtual Task <Stream> OpenStreamAsync(IEntryModel entryModel, FileExplorer.Defines.FileAccess access, CancellationToken ct) { throw new NotImplementedException(); }
public static IScriptCommand OpenFileStream(IEntryModel entryModel, FileExplorer.Defines.FileAccess access, Func <IEntryModel, Stream, IScriptCommand> streamFunc, Func <IEntryModel, IScriptCommand> thenCommandFunc) { return(new OpenStreamCommand(entryModel, access, streamFunc, thenCommandFunc(entryModel))); }