public FormSyncResults(ODConnection connection, ODItemCollection result) { InitializeComponent(); Connection = connection; Results = result; }
public FormSyncResults(ODConnection connection, ODDataModel result) { InitializeComponent(); Connection = connection; Results = result; }
public LargeFileUploader(ODConnection connection, ODUploadSession uploadSession, Stream dataSource, ItemUploadOptions options) { Connection = connection; UploadSession = uploadSession; DataSource = dataSource; UploadOptions = options; }
private async void searchToolStripMenuItem_Click(object sender, EventArgs e) { FormInputDialog dialog = new FormInputDialog("Search", "Search for:"); var result = dialog.ShowDialog(); if (result != System.Windows.Forms.DialogResult.OK && !string.IsNullOrEmpty(dialog.InputText)) { return; } try { ShowWork(true); var results = await Connection.SearchForItemsAsync(ODConnection.ItemReferenceForItemId("root"), dialog.InputText, ItemRetrievalOptions.Default); var form = new FormSyncResults(Connection, results); form.Show(); } catch (ODException exception) { PresentOneDriveException(exception); } ShowWork(false); }
private async void toPathToolStripMenuItem_Click(object sender, EventArgs e) { string filename; var stream = GetFileStreamForUpload("Path", out filename); if (null == stream) { return; } FormInputDialog dialog = new FormInputDialog("Type Path", "Path to store file:"); dialog.InputText = this.CurrentFolder.Path() + "/" + filename; var result = dialog.ShowDialog(); if (result != System.Windows.Forms.DialogResult.OK && !string.IsNullOrEmpty(dialog.InputText)) { return; } string path = dialog.InputText; try { var newItemReference = ODConnection.ItemReferenceForDrivePath(path); var newItem = await Connection.PutContentsAsync(newItemReference, stream, ItemUploadOptions.Default); AddItemToFolderContents(newItem); } catch (ODException exception) { PresentOneDriveException(exception); } }
private async Task LoadOneDriveFile(string p, ODConnection item) { OneDriveFolder Ones = new OneDriveFolder(item); await Ones.AddFiles(p); Ones.ToString(); folder.Add(Ones); }
public async Task <IEnumerable <FileSystemInfoContract> > GetChildItemAsync(RootName root, DirectoryId parent) { var context = await RequireContextAsync(root); var itemReference = ODConnection.ItemReferenceForItemId(parent.Value, context.Drive.Id); var items = await retryPolicy.ExecuteAsync(() => context.Connection.GetChildrenOfItemAsync(itemReference, ChildrenRetrievalOptions.Default)); return(items.Collection.Select(i => i.ToFileSystemInfoContract())); }
public async Task <bool> RemoveItemAsync(RootName root, FileSystemId target, bool recurse) { var context = await RequireContext(root); var itemReference = ODConnection.ItemReferenceForItemId(target.Value, context.Drive.Id); var success = await AsyncFunc.Retry <bool, ODException>(async() => await context.Connection.DeleteItemAsync(itemReference, ItemDeleteOptions.Default), RETRIES); return(success); }
public async Task <DirectoryInfoContract> NewDirectoryItemAsync(RootName root, DirectoryId parent, string name) { var context = await RequireContextAsync(root); var itemReference = ODConnection.ItemReferenceForItemId(parent.Value, context.Drive.Id); var item = await retryPolicy.ExecuteAsync(() => context.Connection.CreateFolderAsync(itemReference, name)); return(new DirectoryInfoContract(item.Id, item.Name, item.CreatedDateTime, item.LastModifiedDateTime)); }
public async Task <DirectoryInfoContract> NewDirectoryItemAsync(RootName root, DirectoryId parent, string name) { var context = await RequireContext(root); var itemReference = ODConnection.ItemReferenceForItemId(parent.Value, context.Drive.Id); var item = await AsyncFunc.Retry <ODItem, ODException>(async() => await context.Connection.CreateFolderAsync(itemReference, name), RETRIES); return(new DirectoryInfoContract(item.Id, item.Name, item.CreatedDateTime, item.LastModifiedDateTime)); }
public async Task <bool> RemoveItemAsync(RootName root, FileSystemId target, bool recurse) { var context = await RequireContextAsync(root); var itemReference = ODConnection.ItemReferenceForItemId(target.Value, context.Drive.Id); var success = await retryPolicy.ExecuteAsync(() => context.Connection.DeleteItemAsync(itemReference, ItemDeleteOptions.Default)); return(success); }
public async Task <Stream> GetContentAsync(RootName root, FileId source) { var context = await RequireContext(root); var itemReference = ODConnection.ItemReferenceForItemId(source.Value, context.Drive.Id); var stream = await AsyncFunc.Retry <Stream, ODException>(async() => await context.Connection.DownloadStreamForItemAsync(itemReference, StreamDownloadOptions.Default), RETRIES); return(stream); }
public async Task <IEnumerable <FileSystemInfoContract> > GetChildItemAsync(RootName root, DirectoryId parent) { var context = await RequireContext(root); var itemReference = ODConnection.ItemReferenceForItemId(parent.Value, context.Drive.Id); var items = await AsyncFunc.Retry <ODItemCollection, ODException>(async() => await context.Connection.GetChildrenOfItemAsync(itemReference, ChildrenRetrievalOptions.Default), RETRIES); return(items.Collection.Select(i => i.ToFileSystemInfoContract())); }
public async Task <Stream> GetContentAsync(RootName root, FileId source) { var context = await RequireContextAsync(root); var itemReference = ODConnection.ItemReferenceForItemId(source.Value, context.Drive.Id); var stream = await retryPolicy.ExecuteAsync(() => context.Connection.DownloadStreamForItemAsync(itemReference, StreamDownloadOptions.Default)); return(stream); }
/// <summary> /// Login and create the connection, if necessary. /// </summary> public static async Task Login() { if (Connection == null || !LiveIdAuth.IsSignedIn) { // Get an OAuth2 access token through REST. var token = await LiveIdAuth.GetAuthToken(); // Initialize connection Connection = new ODConnection("https://api.onedrive.com/v1.0", new OneDriveSdkAuthenticationInfo(token)); } }
private async void Sign() { connection = await OneDriveLogin.SignInToMicrosoftAccount(this, "baba", @"C:\Save"); if (null != connection) { item = new OneDriveFile(connection); await LoadFolderFromId("root"); } //UpdateConnectedStateUx(); }
public async Task <FileSystemInfoContract> RenameItemAsync(RootName root, FileSystemId target, string newName, Func <FileSystemInfoLocator> locatorResolver) { var context = await RequireContext(root); var itemReference = ODConnection.ItemReferenceForItemId(target.Value, context.Drive.Id); var item = await AsyncFunc.Retry <ODItem, ODException>(async() => await context.Connection.PatchItemAsync(itemReference, new ODItem() { Name = newName }), RETRIES); return(item.ToFileSystemInfoContract()); }
public async Task <FileSystemInfoContract> RenameItemAsync(RootName root, FileSystemId target, string newName, Func <FileSystemInfoLocator> locatorResolver) { var context = await RequireContextAsync(root); var itemReference = ODConnection.ItemReferenceForItemId(target.Value, context.Drive.Id); var item = await retryPolicy.ExecuteAsync(() => context.Connection.PatchItemAsync(itemReference, new ODItem() { Name = newName })); return(item.ToFileSystemInfoContract()); }
private async void button2_Click(object sender, EventArgs e) { if (textBox1.Text != null) { ODConnection connect = await Authentication.OneDriveLogin.SignInToMicrosoftAccount(textBox1.Text, @"C:\Test"); if (connect != null) { onedrivelist.Add(connect); listBox1.Items.Add("onedrive"); } } }
public async Task <bool> SetContentAsync(RootName root, FileId target, Stream content, IProgress <ProgressValue> progress, Func <FileSystemInfoLocator> locatorResolver) { var context = await RequireContext(root); var itemReference = ODConnection.ItemReferenceForItemId(target.Value, context.Drive.Id); var uploadOptions = progress != null ? new ItemUploadOptions() { ProgressReporter = (complete, transfered, total) => progress.Report(new ProgressValue(complete, (int)transfered, (int)total)) } : ItemUploadOptions.Default; var item = await AsyncFunc.Retry <ODItem, ODException>(async() => await context.Connection.PutContentsAsync(itemReference, content, uploadOptions), RETRIES); return(true); }
public async Task <FileInfoContract> NewFileItemAsync(RootName root, DirectoryId parent, string name, Stream content, IProgress <ProgressValue> progress) { var context = await RequireContext(root); var itemReference = ODConnection.ItemReferenceForItemId(parent.Value, context.Drive.Id); var uploadOptions = progress != null ? new ItemUploadOptions() { ProgressReporter = (complete, transfered, total) => progress.Report(new ProgressValue(complete, (int)transfered, (int)total)) } : ItemUploadOptions.Default; var item = await AsyncFunc.Retry <ODItem, ODException>(async() => await context.Connection.PutNewFileToParentItemAsync(itemReference, name, content, uploadOptions), RETRIES); return(new FileInfoContract(item.Id, item.Name, item.CreatedDateTime, item.LastModifiedDateTime, item.Size, item.File.Hashes.Sha1.ToLowerInvariant())); }
public async Task <FileSystemInfoContract> MoveItemAsync(RootName root, FileSystemId source, string moveName, DirectoryId destination, Func <FileSystemInfoLocator> locatorResolver) { var context = await RequireContextAsync(root); var itemReference = ODConnection.ItemReferenceForItemId(source.Value, context.Drive.Id); var destinationPathReference = ODConnection.ItemReferenceForItemId(destination.Value, context.Drive.Id); var item = await retryPolicy.ExecuteAsync(() => context.Connection.PatchItemAsync(itemReference, new ODItem() { ParentReference = destinationPathReference, Name = moveName })); return(item.ToFileSystemInfoContract()); }
public async Task <bool> SetContentAsync(RootName root, FileId target, Stream content, IProgress <ProgressValue> progress, Func <FileSystemInfoLocator> locatorResolver) { var context = await RequireContextAsync(root); var itemReference = ODConnection.ItemReferenceForItemId(target.Value, context.Drive.Id); var uploadOptions = progress != null ? new ItemUploadOptions() { ProgressReporter = (complete, transfered, total) => progress.Report(new ProgressValue(complete, (int)transfered, (int)total)) } : ItemUploadOptions.Default; var retryPolicyWithAction = Policy.Handle <ODException>().WaitAndRetryAsync(5, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), (ex, ts) => content.Seek(0, SeekOrigin.Begin)); var item = await retryPolicyWithAction.ExecuteAsync(() => context.Connection.PutContentsAsync(itemReference, content, uploadOptions)); return(true); }
public async Task <FileSystemInfoContract> CopyItemAsync(RootName root, FileSystemId source, string copyName, DirectoryId destination, bool recurse) { var context = await RequireContext(root); var itemReference = ODConnection.ItemReferenceForItemId(source.Value, context.Drive.Id); var destinationPathReference = ODConnection.ItemReferenceForItemId(destination.Value, context.Drive.Id); var task = await context.Connection.CopyItemAsync(itemReference, destinationPathReference, copyName); while (task.Status.Status != AsyncJobStatus.Complete) { await Task.Delay(20); await task.Refresh(context.Connection); } return(task.FinishedItem.ToFileSystemInfoContract()); }
public async Task <FileSystemInfoContract> CopyItemAsync(RootName root, FileSystemId source, string copyName, DirectoryId destination, bool recurse) { var context = await RequireContextAsync(root); var itemReference = ODConnection.ItemReferenceForItemId(source.Value, context.Drive.Id); var destinationPathReference = ODConnection.ItemReferenceForItemId(destination.Value, context.Drive.Id); var task = await retryPolicy.ExecuteAsync(() => context.Connection.CopyItemAsync(itemReference, destinationPathReference, copyName)); while (task.Status.Status != AsyncJobStatus.Completed) { await Task.Delay(20); await task.Refresh(context.Connection); } var destinationPathItems = await retryPolicy.ExecuteAsync(() => context.Connection.GetChildrenOfItemAsync(destinationPathReference, ChildrenRetrievalOptions.Default)); return(destinationPathItems.Collection.Single(item => item.Name == copyName).ToFileSystemInfoContract()); }
public async Task <FileInfoContract> NewFileItemAsync(RootName root, DirectoryId parent, string name, Stream content, IProgress <ProgressValue> progress) { if (content.Length == 0) { return(new ProxyFileInfoContract(name)); } var context = await RequireContextAsync(root); var itemReference = ODConnection.ItemReferenceForItemId(parent.Value, context.Drive.Id); var uploadOptions = progress != null ? new ItemUploadOptions() { ProgressReporter = (complete, transfered, total) => progress.Report(new ProgressValue(complete, (int)transfered, (int)total)) } : ItemUploadOptions.Default; var retryPolicyWithAction = Policy.Handle <ODException>().WaitAndRetryAsync(5, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), (ex, ts) => content.Seek(0, SeekOrigin.Begin)); var item = await retryPolicyWithAction.ExecuteAsync(() => context.Connection.PutNewFileToParentItemAsync(itemReference, name, content, uploadOptions)); return(new FileInfoContract(item.Id, item.Name, item.CreatedDateTime, item.LastModifiedDateTime, (FileSize)item.Size, item.File.Hashes.Sha1.ToLowerInvariant())); }
public OneDriveFolder(ODConnection connect) { this.connect = connect; }
public OneDriveFile(ODConnection connect) { this.connect = connect; }
public OneDriveContext(ODConnection connection, ODDrive drive) { Connection = connection; Drive = drive; }