public static DescribePriceResponse Unmarshall(UnmarshallerContext context)
        {
            DescribePriceResponse describePriceResponse = new DescribePriceResponse();

            describePriceResponse.HttpResponse = context.HttpResponse;
            describePriceResponse.RequestId    = context.StringValue("DescribePrice.RequestId");

            DescribePriceResponse.DescribePrice_PriceInfo priceInfo = new DescribePriceResponse.DescribePrice_PriceInfo();
            priceInfo.Currency      = context.StringValue("DescribePrice.PriceInfo.Currency");
            priceInfo.OriginalPrice = context.FloatValue("DescribePrice.PriceInfo.OriginalPrice");
            priceInfo.TradePrice    = context.FloatValue("DescribePrice.PriceInfo.TradePrice");
            priceInfo.DiscountPrice = context.FloatValue("DescribePrice.PriceInfo.DiscountPrice");

            List <string> priceInfo_ruleIds = new List <string>();

            for (int i = 0; i < context.Length("DescribePrice.PriceInfo.RuleIds.Length"); i++)
            {
                priceInfo_ruleIds.Add(context.StringValue("DescribePrice.PriceInfo.RuleIds[" + i + "]"));
            }
            priceInfo.RuleIds = priceInfo_ruleIds;

            DescribePriceResponse.DescribePrice_PriceInfo.DescribePrice_ActivityInfo activityInfo = new DescribePriceResponse.DescribePrice_PriceInfo.DescribePrice_ActivityInfo();
            activityInfo.CheckErrMsg = context.StringValue("DescribePrice.PriceInfo.ActivityInfo.CheckErrMsg");
            activityInfo.ErrorCode   = context.StringValue("DescribePrice.PriceInfo.ActivityInfo.ErrorCode");
            activityInfo.Success     = context.StringValue("DescribePrice.PriceInfo.ActivityInfo.Success");
            priceInfo.ActivityInfo   = activityInfo;

            List <DescribePriceResponse.DescribePrice_PriceInfo.DescribePrice_Coupon> priceInfo_coupons = new List <DescribePriceResponse.DescribePrice_PriceInfo.DescribePrice_Coupon>();

            for (int i = 0; i < context.Length("DescribePrice.PriceInfo.Coupons.Length"); i++)
            {
                DescribePriceResponse.DescribePrice_PriceInfo.DescribePrice_Coupon coupon = new DescribePriceResponse.DescribePrice_PriceInfo.DescribePrice_Coupon();
                coupon.CouponNo    = context.StringValue("DescribePrice.PriceInfo.Coupons[" + i + "].CouponNo");
                coupon.Name        = context.StringValue("DescribePrice.PriceInfo.Coupons[" + i + "].Name");
                coupon.Description = context.StringValue("DescribePrice.PriceInfo.Coupons[" + i + "].Description");
                coupon.IsSelected  = context.StringValue("DescribePrice.PriceInfo.Coupons[" + i + "].IsSelected");

                priceInfo_coupons.Add(coupon);
            }
            priceInfo.Coupons = priceInfo_coupons;
            describePriceResponse.PriceInfo = priceInfo;

            List <DescribePriceResponse.DescribePrice_Rule> describePriceResponse_rules = new List <DescribePriceResponse.DescribePrice_Rule>();

            for (int i = 0; i < context.Length("DescribePrice.Rules.Length"); i++)
            {
                DescribePriceResponse.DescribePrice_Rule rule = new DescribePriceResponse.DescribePrice_Rule();
                rule.RuleId      = context.LongValue("DescribePrice.Rules[" + i + "].RuleId");
                rule.Name        = context.StringValue("DescribePrice.Rules[" + i + "].Name");
                rule.Description = context.StringValue("DescribePrice.Rules[" + i + "].Description");

                describePriceResponse_rules.Add(rule);
            }
            describePriceResponse.Rules = describePriceResponse_rules;

            return(describePriceResponse);
        }
        public static DescribePriceResponse Unmarshall(UnmarshallerContext _ctx)
        {
            DescribePriceResponse describePriceResponse = new DescribePriceResponse();

            describePriceResponse.HttpResponse = _ctx.HttpResponse;
            describePriceResponse.RequestId    = _ctx.StringValue("DescribePrice.RequestId");
            describePriceResponse.TraceId      = _ctx.StringValue("DescribePrice.TraceId");
            describePriceResponse.OrderParams  = _ctx.StringValue("DescribePrice.OrderParams");

            DescribePriceResponse.DescribePrice_Order order = new DescribePriceResponse.DescribePrice_Order();
            order.OriginalAmount = _ctx.StringValue("DescribePrice.Order.OriginalAmount");
            order.DiscountAmount = _ctx.StringValue("DescribePrice.Order.DiscountAmount");
            order.TradeAmount    = _ctx.StringValue("DescribePrice.Order.TradeAmount");
            order.Currency       = _ctx.StringValue("DescribePrice.Order.Currency");

            List <string> order_ruleIds1 = new List <string>();

            for (int i = 0; i < _ctx.Length("DescribePrice.Order.RuleIds.Length"); i++)
            {
                order_ruleIds1.Add(_ctx.StringValue("DescribePrice.Order.RuleIds[" + i + "]"));
            }
            order.RuleIds1 = order_ruleIds1;

            List <DescribePriceResponse.DescribePrice_Order.DescribePrice_Coupon> order_coupons = new List <DescribePriceResponse.DescribePrice_Order.DescribePrice_Coupon>();

            for (int i = 0; i < _ctx.Length("DescribePrice.Order.Coupons.Length"); i++)
            {
                DescribePriceResponse.DescribePrice_Order.DescribePrice_Coupon coupon = new DescribePriceResponse.DescribePrice_Order.DescribePrice_Coupon();
                coupon.Description = _ctx.StringValue("DescribePrice.Order.Coupons[" + i + "].Description");
                coupon.IsSelected  = _ctx.StringValue("DescribePrice.Order.Coupons[" + i + "].IsSelected");
                coupon.CouponNo    = _ctx.StringValue("DescribePrice.Order.Coupons[" + i + "].CouponNo");
                coupon.Name        = _ctx.StringValue("DescribePrice.Order.Coupons[" + i + "].Name");

                order_coupons.Add(coupon);
            }
            order.Coupons = order_coupons;
            describePriceResponse.Order = order;

            List <DescribePriceResponse.DescribePrice_SubOrder> describePriceResponse_subOrders = new List <DescribePriceResponse.DescribePrice_SubOrder>();

            for (int i = 0; i < _ctx.Length("DescribePrice.SubOrders.Length"); i++)
            {
                DescribePriceResponse.DescribePrice_SubOrder subOrder = new DescribePriceResponse.DescribePrice_SubOrder();
                subOrder.OriginalAmount = _ctx.StringValue("DescribePrice.SubOrders[" + i + "].OriginalAmount");
                subOrder.DiscountAmount = _ctx.StringValue("DescribePrice.SubOrders[" + i + "].DiscountAmount");
                subOrder.TradeAmount    = _ctx.StringValue("DescribePrice.SubOrders[" + i + "].TradeAmount");
                subOrder.InstanceId     = _ctx.StringValue("DescribePrice.SubOrders[" + i + "].InstanceId");

                List <string> subOrder_ruleIds = new List <string>();
                for (int j = 0; j < _ctx.Length("DescribePrice.SubOrders[" + i + "].RuleIds.Length"); j++)
                {
                    subOrder_ruleIds.Add(_ctx.StringValue("DescribePrice.SubOrders[" + i + "].RuleIds[" + j + "]"));
                }
                subOrder.RuleIds = subOrder_ruleIds;

                describePriceResponse_subOrders.Add(subOrder);
            }
            describePriceResponse.SubOrders = describePriceResponse_subOrders;

            List <DescribePriceResponse.DescribePrice_Rule> describePriceResponse_rules = new List <DescribePriceResponse.DescribePrice_Rule>();

            for (int i = 0; i < _ctx.Length("DescribePrice.Rules.Length"); i++)
            {
                DescribePriceResponse.DescribePrice_Rule rule = new DescribePriceResponse.DescribePrice_Rule();
                rule.RuleDescId = _ctx.LongValue("DescribePrice.Rules[" + i + "].RuleDescId");
                rule.Title      = _ctx.StringValue("DescribePrice.Rules[" + i + "].Title");
                rule.Name       = _ctx.StringValue("DescribePrice.Rules[" + i + "].Name");

                describePriceResponse_rules.Add(rule);
            }
            describePriceResponse.Rules = describePriceResponse_rules;

            return(describePriceResponse);
        }