Exemplo n.º 1
0
        /// <summary>
        /// Creates the result for the specified content asynchronously.
        /// </summary>
        /// <param name="content">The HTTP content.</param>
        /// <returns>The produced operation result.</returns>
        protected async override Task <HadoopFileSystemOperationResult> CreateResultAsync(HttpContent content)
        {
            return(new HadoopFileListingOperationResult
            {
                Request = this.CompleteRequest,
                StatusList = JObject.Parse(await content.ReadAsStringAsync()).GetValue("FileStatuses")["FileStatus"].Children <JObject>().Select(fileObject =>
                {
                    HadoopFileStatusOperationResult fileResult = new HadoopFileStatusOperationResult
                    {
                        Name = fileObject.Value <String>("pathSuffix"),
                        AccessTime = new DateTime(1970, 1, 1) + TimeSpan.FromTicks(fileObject.Value <Int64>("accessTime")),
                        ModificationTime = new DateTime(1970, 1, 1) + TimeSpan.FromTicks(fileObject.Value <Int64>("modificationTime")),
                        Length = fileObject.Value <Int64>("length"),
                        BlockSize = fileObject.Value <Int64>("blockSize"),
                    };

                    switch (fileObject.Value <String>("type"))
                    {
                    case "FILE":
                        fileResult.EntryType = FileSystemEntryType.File;
                        break;

                    case "DIRECTORY":
                        fileResult.EntryType = FileSystemEntryType.Directory;
                        break;

                    case "SYMLINK":
                        fileResult.EntryType = FileSystemEntryType.Link;
                        break;
                    }

                    return fileResult;
                }).ToArray()
            });
        }
        /// <summary>
        /// Creates the result for the specified content asynchronously.
        /// </summary>
        /// <param name="content">The HTTP content.</param>
        /// <returns>The produced operation result.</returns>
        protected async override Task <HadoopFileSystemOperationResult> CreateResultAsync(HttpContent content)
        {
            JObject contentObject = JObject.Parse(await content.ReadAsStringAsync()).Value <JObject>("FileStatus");

            HadoopFileStatusOperationResult result = new HadoopFileStatusOperationResult
            {
                Request          = this.CompleteRequest,
                Name             = contentObject.Value <String>("pathSuffix"),
                AccessTime       = new DateTime(1970, 1, 1) + TimeSpan.FromSeconds(contentObject.Value <Int64>("accessTime") / 1000),
                ModificationTime = new DateTime(1970, 1, 1) + TimeSpan.FromSeconds(contentObject.Value <Int64>("modificationTime") / 1000),
                Length           = contentObject.Value <Int64>("length"),
                BlockSize        = contentObject.Value <Int64>("blockSize"),
            };

            switch (contentObject.Value <String>("type"))
            {
            case "FILE":
                result.EntryType = FileSystemEntryType.File;
                break;

            case "DIRECTORY":
                result.EntryType = FileSystemEntryType.Directory;
                break;

            case "SYMLINK":
                result.EntryType = FileSystemEntryType.Link;
                break;
            }

            return(result);
        }