/// <summary> /// Requests for Root folder node info. Cached without expiration. /// </summary> /// <returns>Root folder node info</returns> public async Task<AmazonNode> GetRoot() { if (root != null) return root; var url = "{0}nodes?filters=isRoot:true"; var result = await http.GetJsonAsync<Children>(string.Format(url, await amazon.GetMetadataUrl().ConfigureAwait(false))).ConfigureAwait(false); if (result.count == 0) return null; root = result.data[0]; if (root == null) throw new InvalidOperationException("Could not retrieve root"); return root; }
private static StorageProviderItem CreateStorageProviderItem(StorageProviderItem parent, AmazonNode item) { var result = new StorageProviderItem { Name = item.name, Id = item.id, ParentReferenceId = parent.Id, LastModifiedDateTime = item.modifiedDate }; switch (item.kind) { case AmazonNodeKind.FILE: result.Type = StorageProviderItemType.File; break; case AmazonNodeKind.FOLDER: result.Type = StorageProviderItemType.Folder; break; default: result.Type = StorageProviderItemType.Unknown; break; } return result; }