/* * Copyright (C) Alibaba Cloud Computing * All rights reserved. * * 版权所有 (C)阿里云计算有限公司 */ using System.IO; using System.Collections.Generic; using Aliyun.OSS.Common.Communication; using Aliyun.OSS.Model; namespace Aliyun.OSS.Transform { internal class ListBucketsResultDeserializer : ResponseDeserializer<ListBucketsResult, ListAllMyBucketsResult> { public ListBucketsResultDeserializer(IDeserializer<Stream, ListAllMyBucketsResult> contentDeserializer) : base(contentDeserializer) { } public override ListBucketsResult Deserialize(ServiceResponse xmlStream) { var model = ContentDeserializer.Deserialize(xmlStream.Content); var result = new ListBucketsResult {Prefix = model.Prefix, Marker = model.Marker}; if (model.MaxKeys.HasValue) result.MaxKeys = model.MaxKeys.Value; if (model.IsTruncated.HasValue) result.IsTruncated = model.IsTruncated.Value; result.NextMaker = model.NextMarker; var selectedBuckets = new List<Bucket>(); foreach (var e in model.Buckets) { var newBucket = new Bucket(e.Name) { Location = e.Location, Owner = new Owner(model.Owner.Id, model.Owner.DisplayName), CreationDate = e.CreationDate }; selectedBuckets.Add(newBucket); } result.Buckets = selectedBuckets; return result; } } }