private static void UnmarshallResult(XmlUnmarshallerContext context,ListMultipartUploadsResponse 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("KeyMarker", targetDepth))
{
response.KeyMarker = StringUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("UploadIdMarker", targetDepth))
{
response.UploadIdMarker = StringUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("NextKeyMarker", targetDepth))
{
response.NextKeyMarker = StringUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("NextUploadIdMarker", targetDepth))
{
response.NextUploadIdMarker = StringUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("MaxUploads", targetDepth))
{
response.MaxUploads = IntUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("IsTruncated", targetDepth))
{
response.IsTruncated = BoolUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("Upload", targetDepth))
{
response.MultipartUploads.Add(MultipartUploadUnmarshaller.GetInstance().Unmarshall(context));
continue;
}
if (context.TestExpression("Delimiter", targetDepth))
{
response.Delimiter = StringUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("Prefix", targetDepth))
{
response.Prefix = StringUnmarshaller.GetInstance().Unmarshall(context);
continue;
}
if (context.TestExpression("CommonPrefixes", targetDepth))
{
var prefix = CommonPrefixesItemUnmarshaller.GetInstance().Unmarshall(context);
if (prefix != null)
response.CommonPrefixes.Add(prefix);
continue;
}
}
else if (context.IsEndElement && context.CurrentDepth < originalDepth)
{
return;
}
}
return;
}