/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { DescribeProductResponse response = new DescribeProductResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.TestExpression("Budgets", targetDepth)) { var unmarshaller = new ListUnmarshaller <BudgetDetail, BudgetDetailUnmarshaller>(BudgetDetailUnmarshaller.Instance); response.Budgets = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("ProductViewSummary", targetDepth)) { var unmarshaller = ProductViewSummaryUnmarshaller.Instance; response.ProductViewSummary = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("ProvisioningArtifacts", targetDepth)) { var unmarshaller = new ListUnmarshaller <ProvisioningArtifact, ProvisioningArtifactUnmarshaller>(ProvisioningArtifactUnmarshaller.Instance); response.ProvisioningArtifacts = unmarshaller.Unmarshall(context); continue; } } return(response); }
public static DescribeProductResponse Unmarshall(UnmarshallerContext context) { DescribeProductResponse describeProductResponse = new DescribeProductResponse(); describeProductResponse.HttpResponse = context.HttpResponse; describeProductResponse.Code = context.StringValue("DescribeProduct.Code"); describeProductResponse.Name = context.StringValue("DescribeProduct.Name"); describeProductResponse.Type = context.StringValue("DescribeProduct.Type"); describeProductResponse.PicUrl = context.StringValue("DescribeProduct.PicUrl"); describeProductResponse.Description = context.StringValue("DescribeProduct.Description"); describeProductResponse.ShortDescription = context.StringValue("DescribeProduct.ShortDescription"); describeProductResponse.UseCount = context.LongValue("DescribeProduct.UseCount"); describeProductResponse.Score = context.FloatValue("DescribeProduct.Score"); describeProductResponse.Status = context.StringValue("DescribeProduct.Status"); describeProductResponse.AuditStatus = context.StringValue("DescribeProduct.AuditStatus"); describeProductResponse.AuditFailMsg = context.StringValue("DescribeProduct.AuditFailMsg"); describeProductResponse.AuditTime = context.LongValue("DescribeProduct.AuditTime"); describeProductResponse.GmtCreated = context.LongValue("DescribeProduct.GmtCreated"); describeProductResponse.GmtModified = context.LongValue("DescribeProduct.GmtModified"); DescribeProductResponse.DescribeProduct_ShopInfo shopInfo = new DescribeProductResponse.DescribeProduct_ShopInfo(); shopInfo.Id = context.LongValue("DescribeProduct.ShopInfo.Id"); shopInfo.Name = context.StringValue("DescribeProduct.ShopInfo.Name"); shopInfo.Emails = context.StringValue("DescribeProduct.ShopInfo.Emails"); List <string> shopInfo_telephones = new List <string>(); for (int i = 0; i < context.Length("DescribeProduct.ShopInfo.Telephones.Length"); i++) { shopInfo_telephones.Add(context.StringValue("DescribeProduct.ShopInfo.Telephones[" + i + "]")); } shopInfo.Telephones = shopInfo_telephones; List <DescribeProductResponse.DescribeProduct_ShopInfo.DescribeProduct_WangWang> shopInfo_wangWangs = new List <DescribeProductResponse.DescribeProduct_ShopInfo.DescribeProduct_WangWang>(); for (int i = 0; i < context.Length("DescribeProduct.ShopInfo.WangWangs.Length"); i++) { DescribeProductResponse.DescribeProduct_ShopInfo.DescribeProduct_WangWang wangWang = new DescribeProductResponse.DescribeProduct_ShopInfo.DescribeProduct_WangWang(); wangWang.UserName = context.StringValue("DescribeProduct.ShopInfo.WangWangs[" + i + "].UserName"); wangWang.Remark = context.StringValue("DescribeProduct.ShopInfo.WangWangs[" + i + "].Remark"); shopInfo_wangWangs.Add(wangWang); } shopInfo.WangWangs = shopInfo_wangWangs; describeProductResponse.ShopInfo = shopInfo; List <DescribeProductResponse.DescribeProduct_ProductSku> describeProductResponse_productSkus = new List <DescribeProductResponse.DescribeProduct_ProductSku>(); for (int i = 0; i < context.Length("DescribeProduct.ProductSkus.Length"); i++) { DescribeProductResponse.DescribeProduct_ProductSku productSku = new DescribeProductResponse.DescribeProduct_ProductSku(); productSku.Name = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Name"); productSku.Code = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Code"); productSku.ChargeType = context.StringValue("DescribeProduct.ProductSkus[" + i + "].ChargeType"); productSku.Constraints = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Constraints"); productSku.Hidden = context.BooleanValue("DescribeProduct.ProductSkus[" + i + "].Hidden"); List <DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_OrderPeriod> productSku_orderPeriods = new List <DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_OrderPeriod>(); for (int j = 0; j < context.Length("DescribeProduct.ProductSkus[" + i + "].OrderPeriods.Length"); j++) { DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_OrderPeriod orderPeriod = new DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_OrderPeriod(); orderPeriod.Name = context.StringValue("DescribeProduct.ProductSkus[" + i + "].OrderPeriods[" + j + "].Name"); orderPeriod.PeriodType = context.StringValue("DescribeProduct.ProductSkus[" + i + "].OrderPeriods[" + j + "].PeriodType"); productSku_orderPeriods.Add(orderPeriod); } productSku.OrderPeriods = productSku_orderPeriods; List <DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_Module> productSku_modules = new List <DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_Module>(); for (int j = 0; j < context.Length("DescribeProduct.ProductSkus[" + i + "].Modules.Length"); j++) { DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_Module module = new DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_Module(); module.Id = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Id"); module.Name = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Name"); module.Code = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Code"); List <DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_Module.DescribeProduct_Property> module_properties = new List <DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_Module.DescribeProduct_Property>(); for (int k = 0; k < context.Length("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Properties.Length"); k++) { DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_Module.DescribeProduct_Property property = new DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_Module.DescribeProduct_Property(); property.Name = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Properties[" + k + "].Name"); property.Key = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Properties[" + k + "].Key"); property.ShowType = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Properties[" + k + "].ShowType"); property.DisplayUnit = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Properties[" + k + "].DisplayUnit"); List <DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_Module.DescribeProduct_Property.DescribeProduct_PropertyValue> property_propertyValues = new List <DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_Module.DescribeProduct_Property.DescribeProduct_PropertyValue>(); for (int l = 0; l < context.Length("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Properties[" + k + "].PropertyValues.Length"); l++) { DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_Module.DescribeProduct_Property.DescribeProduct_PropertyValue propertyValue = new DescribeProductResponse.DescribeProduct_ProductSku.DescribeProduct_Module.DescribeProduct_Property.DescribeProduct_PropertyValue(); propertyValue._Value = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Properties[" + k + "].PropertyValues[" + l + "]._Value"); propertyValue.DisplayName = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Properties[" + k + "].PropertyValues[" + l + "].DisplayName"); propertyValue.Type = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Properties[" + k + "].PropertyValues[" + l + "].Type"); propertyValue.Min = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Properties[" + k + "].PropertyValues[" + l + "].Min"); propertyValue.Max = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Properties[" + k + "].PropertyValues[" + l + "].Max"); propertyValue.Step = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Properties[" + k + "].PropertyValues[" + l + "].Step"); propertyValue.Remark = context.StringValue("DescribeProduct.ProductSkus[" + i + "].Modules[" + j + "].Properties[" + k + "].PropertyValues[" + l + "].Remark"); property_propertyValues.Add(propertyValue); } property.PropertyValues = property_propertyValues; module_properties.Add(property); } module.Properties = module_properties; productSku_modules.Add(module); } productSku.Modules = productSku_modules; describeProductResponse_productSkus.Add(productSku); } describeProductResponse.ProductSkus = describeProductResponse_productSkus; List <DescribeProductResponse.DescribeProduct_ProductExtra> describeProductResponse_productExtras = new List <DescribeProductResponse.DescribeProduct_ProductExtra>(); for (int i = 0; i < context.Length("DescribeProduct.ProductExtras.Length"); i++) { DescribeProductResponse.DescribeProduct_ProductExtra productExtra = new DescribeProductResponse.DescribeProduct_ProductExtra(); productExtra.Key = context.StringValue("DescribeProduct.ProductExtras[" + i + "].Key"); productExtra.Values = context.StringValue("DescribeProduct.ProductExtras[" + i + "].Values"); productExtra.Label = context.StringValue("DescribeProduct.ProductExtras[" + i + "].Label"); productExtra.Order = context.IntegerValue("DescribeProduct.ProductExtras[" + i + "].Order"); productExtra.Type = context.StringValue("DescribeProduct.ProductExtras[" + i + "].Type"); describeProductResponse_productExtras.Add(productExtra); } describeProductResponse.ProductExtras = describeProductResponse_productExtras; return(describeProductResponse); }