protected async override Task ExecuteOperation(IFileMetadataStore metadataStore, IFileSyncContext context) { MobileServiceFileMetadata metadata = await metadataStore.GetFileMetadataAsync(FileId); if (metadata != null) { IMobileServiceFileDataSource dataSource = await context.SyncHandler.GetDataSource(metadata); await context.MobileServiceFilesClient.UploadFileAsync(metadata, dataSource); await metadataStore.CreateOrUpdateAsync(metadata); } }
public Task <IMobileServiceFileDataSource> GetDataSource(MobileServiceFileMetadata metadata) { var filePath = _fileHelper.GetLocalFilePath(metadata.ParentDataItemId, metadata.FileName); IMobileServiceFileDataSource result = null; if (filePath != null) { result = _fileHelper.GetMobileServiceDataSource(filePath); } return(Task.FromResult(result)); }
public async Task UploadFileAsync(MobileServiceFileMetadata metadata, IMobileServiceFileDataSource dataSource, StorageToken storageToken) { CloudBlockBlob blob = GetBlobReference(storageToken, metadata.FileName); using (var stream = await dataSource.GetStream()) { await blob.UploadFromStreamAsync(stream); metadata.LastModified = blob.Properties.LastModified; metadata.FileStoreUri = blob.Uri.LocalPath; stream.Position = 0; metadata.ContentMD5 = GetMD5Hash(stream); } }
public async Task UploadFileAsync(MobileServiceFileMetadata metadata, IMobileServiceFileDataSource dataSource) { if (metadata == null) { throw new ArgumentNullException("metadata"); } if (dataSource == null) { throw new ArgumentNullException("dataSource"); } StorageToken token = await GetStorageToken(this.client, MobileServiceFile.FromMetadata(metadata), StoragePermissions.Write); await this.storageProvider.UploadFileAsync(metadata, dataSource, token); }
public Task <IMobileServiceFileDataSource> GetDataSource(MobileServiceFileMetadata metadata) { IMobileServiceFileDataSource source = fileSyncHelper.GetMobileServiceDataSource(fileHelper.GetLocalFilePath(metadata.ParentDataItemId, metadata.FileName)); return(Task.FromResult(source)); }
public async static Task UploadAsync(this IMobileServiceClient client, MobileServiceFile file, IMobileServiceFileDataSource dataSource) { MobileServiceFileMetadata metadata = MobileServiceFileMetadata.FromFile(file); IMobileServiceFilesClient filesClient = GetFilesClient(client); await filesClient.UploadFileAsync(metadata, dataSource); }
public async static Task UploadFileAsync <T>(this IMobileServiceTable <T> table, MobileServiceFile file, IMobileServiceFileDataSource dataSource) { await UploadAsync(table.MobileServiceClient, file, dataSource); }