private bool IsMetadataValid(MobileServiceFileMetadata metadata) { return inputFile.Id == metadata.Id && string.Compare(inputFile.Name, metadata.FileName) == 0 && string.Compare(inputFile.ParentId, metadata.ParentDataItemId) == 0 && string.Compare(inputFile.TableName, metadata.ParentDataItemType) == 0 && string.Compare(inputFile.ContentMD5, metadata.ContentMD5) == 0 && inputFile.Length == metadata.Length; }
/// <summary> /// Convert a <see cref="MobileServiceFileMetadata"/> into a <see cref="MobileServiceFile"/> /// </summary> /// <param name="metadata">The <see cref="MobileServiceFileMetadata"/> instance</param> /// <returns>An equivalent <see cref="MobileServiceFile"/> instance</returns> internal static MobileServiceFile FromMetadata(MobileServiceFileMetadata metadata) { var file = new MobileServiceFile(metadata.FileId, metadata.ParentDataItemType, metadata.ParentDataItemId); file.ContentMD5 = metadata.ContentMD5; file.LastModified = metadata.LastModified; file.Length = metadata.Length; file.Metadata = metadata.ToDictionary(); return file; }
public Task CreateOrUpdateAsync(MobileServiceFileMetadata metadata) { if (this.metadataCollection.Any(m => string.Compare(m.FileId, metadata.FileId) == 0)) { this.metadataCollection.Remove(metadata); } this.metadataCollection.Add(metadata); return Task.FromResult(0); }
public Task CreateOrUpdateAsync(MobileServiceFileMetadata metadata) { if (this.metadataCollection.Any(m => string.Compare(m.FileId, metadata.FileId) == 0)) { this.metadataCollection.Remove(metadata); } this.metadataCollection.Add(metadata); return(Task.FromResult(0)); }
public async Task DeleteFileAsync(MobileServiceFileMetadata metadata) { string route = string.Format("/tables/{0}/{1}/MobileServiceFiles/{2}", metadata.ParentDataItemType, metadata.ParentDataItemId, metadata.FileName); var parameters = new Dictionary<string, string>(); if (metadata.FileStoreUri != null) { parameters.Add("x-zumo-filestoreuri", metadata.FileStoreUri); } await this.client.InvokeApiAsync(route, HttpMethod.Delete, parameters); }
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 DeleteAsync(MobileServiceFileMetadata metadata) { this.metadataCollection.Remove(metadata); return Task.FromResult(0); }
private async Task<StorageToken> GetStorageToken(IMobileServiceClient client, MobileServiceFileMetadata metadata, StoragePermissions permissions) { return await GetStorageToken(client, MobileServiceFile.FromMetadata(metadata), permissions); }
public async Task<IMobileServiceFileDataSource> GetDataSource(MobileServiceFileMetadata metadata) { var stream = await localStorage.GetAsync(MobileServiceFile.FromMetadata(metadata)); return new StreamMobileServiceFileDataSource(stream); }
public async Task CreateOrUpdateAsync(MobileServiceFileMetadata metadata) { JObject jsonObject = JObject.FromObject(metadata); await this.store.UpsertAsync(FileMetadataTableName, new[] { jsonObject }, true); }
public Task DeleteAsync(MobileServiceFileMetadata metadata) { this.metadataCollection.Remove(metadata); return(Task.FromResult(0)); }
public Task <MobileServiceFileMetadata> GetFileMetadataAsync(string fileId) { MobileServiceFileMetadata metadata = this.metadataCollection.FirstOrDefault(m => string.Compare(m.FileId, fileId) == 0); return(Task.FromResult(metadata)); }
public async Task AddFileAsync(MobileServiceFile file) { var metadata = new MobileServiceFileMetadata { FileId = file.Id, FileName = file.Name, Length = file.Length, Location = FileLocation.Local, ContentMD5 = file.ContentMD5, ParentDataItemType = file.TableName, ParentDataItemId = file.ParentId, LastModified = DateTimeOffset.Now }; await metadataStore.CreateOrUpdateAsync(metadata); var operation = new CreateMobileServiceFileOperation(Guid.NewGuid().ToString(), file.Id); await QueueOperationAsync(operation); NotifyFileOperationCompletion(file, FileOperationKind.Create, FileOperationSource.Local); }
public async Task CreateOrUpdateAsync(MobileServiceFileMetadata metadata) { JObject jsonObject = JObject.FromObject(metadata); await this.store.UpsertAsync(FileMetadataTableName, new[] { jsonObject }, true); }
public async Task DeleteAsync(MobileServiceFileMetadata metadata) { await this.store.DeleteAsync(FileMetadataTableName, new[] { metadata.Id }); }
public Task<IMobileServiceFileDataSource> GetDataSource(MobileServiceFileMetadata metadata) { IPlatform platform = DependencyService.Get<IPlatform>(); return platform.GetFileDataSource(metadata); }
public async Task DeleteAsync(MobileServiceFileMetadata metadata) { await this.store.DeleteAsync(FileMetadataTableName, new[] { metadata.Id }); }
public async Task<IMobileServiceFileDataSource> GetDataSource(MobileServiceFileMetadata metadata) { return new StringFileDataSource(this.sources[metadata.FileName]); }