Esempio 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 = 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 = 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;
        }