private async Task <IGoogleDriveFile> DoCopyFileAsync(IGoogleDriveFile from, IGoogleDriveFolder toFolder, string newName, PauseToken pt, CancellationToken ct, IProgress <GoogleDriveProgress> progress, GoogleDriveProgress progressPayload) { var driveService = await GetDriveServiceAsync().ConfigureAwait(false); progressPayload.Count++; progressPayload.Current = from; progressPayload.Status = string.Format("Copying file '{0}' to folder '{1}'...", from.Name, toFolder.Name); progress.TryReport(() => progressPayload); await pt.WaitWhilePausedAsync().ConfigureAwait(false); var toFile = new File { Parents = new List <string> { toFolder.Id }, Name = newName }; var copyRequest = driveService.Files.Copy(toFile, from.Id); copyRequest.SupportsTeamDrives = true; var resp = await copyRequest.ExecuteAsync(ct).ConfigureAwait(false); var result = new GoogleDriveFile(resp, toFolder); RaiseFileCreated(result); return(result); }
public Task <IGoogleDriveFile> DoCopyAsync(IGoogleDriveFile from, IGoogleDriveFolder toFolder, string newName, PauseToken pt, CancellationToken ct, IProgress <GoogleDriveProgress> progress, GoogleDriveProgress progressPayload) { var folder = from as IGoogleDriveFolder; return(folder != null ? DoCopyFolderAsync(folder, toFolder, newName, pt, ct, progress, progressPayload) : DoCopyFileAsync(from, toFolder, newName, pt, ct, progress, progressPayload)); }
public GoogleDriveActivity(string user, string action, string name, string id, IGoogleDriveFile file) { User = user; Action = action; Name = name; Id = id; File = file; }
private ITreeNode CreateTreeNode(IGoogleDriveFile f, TreeNodeContainer parent) { if (f is IGoogleDriveFolder) { return(new TreeNodeContainer(f, parent, this)); } return(new TreeNodeData(f, parent, this)); }
protected virtual void RaiseFileCreated(IGoogleDriveFile file) { var handler = FileCreated; if (handler != null) { handler(this, new GoogldDriveFileCreatedEventArgs(file)); } }
public Task <IGoogleDriveFile> CopyAsync(IGoogleDriveFile from, IGoogleDriveFolder toFolder, string newName = null, PauseToken pt = default(PauseToken), CancellationToken ct = default(CancellationToken), IProgress <GoogleDriveProgress> progress = null, GoogleDriveProgress progressPayload = null) { return(Task.Run(async() => { var payload = progressPayload ?? new GoogleDriveProgress(); var result = await DoCopyAsync(from, toFolder, newName, pt, ct, progress, payload).ConfigureAwait(false); progress.TryReport(() => payload); return result; }, ct)); }
public async void AddAdhocFileAsync(IGoogleDriveFile file) { var adhocNode = AdhocNode as TreeNodeContainer; if (adhocNode != null) { if (adhocNode.HasDummyChild) { await adhocNode.ExpandAsync().ConfigureAwait(true); } _dispatcher.CheckedInvoke(() => adhocNode.AddData(file)); } }
public static IGoogleDriveFolder RootFolder(this IGoogleDriveFile file) { if (file == null) { return(null); } var folder = file as IGoogleDriveFolder ?? (IGoogleDriveFolder)file.Parent; if (folder != null) { return(GetRootFolder(folder)); } return(null); }
public GoogldDriveFileCreatedEventArgs(IGoogleDriveFile file) { File = file; }
public GoogleDriveFileInfoInvalid(IGoogleDriveFile file) : base(file) { }
public static bool IsTeamDriveFile(this IGoogleDriveFile file) { var root = file.RootFolder(); return(root != null && root.File is GoogleTeamDrive); }
public static bool IsFolder(this IGoogleDriveFile file) { return(file is IGoogleDriveFolder && file.Type == MimeType.Folder); }
private async Task <IReadOnlyCollection <Tuple <IGoogleDriveFile, int> > > DoRecursiveGetChildFilesAsync(IGoogleDriveFile file, int start, string filenameQuery, CancellationToken ct, IProgress <string> progress) { var folder = file as IGoogleDriveFolder; if (folder != null) { var result = new List <Tuple <IGoogleDriveFile, int> > { Tuple.Create(file, start++) }; var q = string.Format(CommonQueries.LiveFileFormat, folder.Id); progress.TryReport("Recursively load files in " + folder + ", FileName: " + filenameQuery); var files = await DoRecursiveGetChildFilesAsync(folder, q, start, filenameQuery, ct, progress).ConfigureAwait(false); result.AddRange(files); return(result); } return(new[] { Tuple.Create(file, start) }); }
private Task <IReadOnlyCollection <IGoogleDriveFile> > GetRootsAsync(GoogleDriveFolder parent) { IReadOnlyCollection <IGoogleDriveFile> roots = new IGoogleDriveFile[] { _myDriveFolder, _teamDriveFolder, _activityFolder, _adhocFolder, _searchResultFolder }; return(Task.FromResult(roots)); }
public static bool Match(this IGoogleDriveFile file, string str) { return(file.Name == str || file.Id == str); }
public GoogleDriveFileInfoModel(IGoogleDriveFile file) { _file = file; }
public GoogleDriveImageFileInfoModel(IGoogleDriveFile file) : base(file) { }