private static void UnmarshallResult(XmlUnmarshallerContext context,ListPartsResponse response)
{
int originalDepth = context.CurrentDepth;
int targetDepth = originalDepth + 1;
if (context.IsStartOfDocument)
targetDepth += 2;
while (context.Read())
{
if (context.IsStartElement || context.IsAttribute)
{
if (context.TestExpression("Bucket", targetDepth))
{
response.BucketName = StringUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("Key", targetDepth))
{
response.Key = StringUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("UploadId", targetDepth))
{
response.UploadId = StringUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("PartNumberMarker", targetDepth))
{
response.PartNumberMarker = IntUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("NextPartNumberMarker", targetDepth))
{
response.NextPartNumberMarker = IntUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("MaxParts", targetDepth))
{
response.MaxParts = IntUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("IsTruncated", targetDepth))
{
response.IsTruncated = BoolUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("Part", targetDepth))
{
response.Parts.Add(PartDetailUnmarshaller.Instance.Unmarshall(context));
continue;
}
if (context.TestExpression("Initiator", targetDepth))
{
response.Initiator = InitiatorUnmarshaller.Instance.Unmarshall(context);
continue;
}
if (context.TestExpression("Owner", targetDepth))
{
response.Owner = OwnerUnmarshaller.Instance.Unmarshall(context);
continue;
}
if (context.TestExpression("StorageClass", targetDepth))
{
response.StorageClass = StringUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
}
else if (context.IsEndElement && context.CurrentDepth < originalDepth)
{
return;
}
}
IWebResponseData responseData = context.ResponseData;
if (responseData.IsHeaderPresent(HeaderKeys.XAmzAbortDateHeader))
response.AbortDate = S3Transforms.ToDateTime(responseData.GetHeaderValue(HeaderKeys.XAmzAbortDateHeader));
if (responseData.IsHeaderPresent(HeaderKeys.XAmzAbortRuleIdHeader))
response.AbortRuleId = S3Transforms.ToString(responseData.GetHeaderValue(HeaderKeys.XAmzAbortRuleIdHeader));
if (responseData.IsHeaderPresent(S3Constants.AmzHeaderRequestCharged))
response.RequestCharged = RequestCharged.FindValue(responseData.GetHeaderValue(S3Constants.AmzHeaderRequestCharged));
return;
}