private IntershopWebService.TotalDetails extractTotalDetails(Axapta ax, AxaptaContainer totalContainer)
        {
            IEnumerator enumerator = totalContainer.GetEnumerator();

            IntershopWebService.TotalDetails totalDetails = new IntershopWebService.TotalDetails();
            int num = 0;

            while (enumerator.MoveNext())
            {
                switch (num++)
                {
                case 0:
                    totalDetails.IshBasketID = Convert.ToString(enumerator.Current);
                    break;

                case 1:
                    totalDetails.AxBasketID = Convert.ToString(enumerator.Current);
                    break;

                case 2:
                    totalDetails.TotalAmount = Math.Round(Convert.ToDouble(enumerator.Current), 2);
                    break;

                case 3:
                    totalDetails.Currency = Convert.ToString(enumerator.Current);
                    break;

                case 4:
                    totalDetails.TotalNetAmount = Math.Round(Convert.ToDouble(enumerator.Current), 2);
                    break;

                case 5:
                    totalDetails.VatTotal = Math.Round(Convert.ToDouble(enumerator.Current), 2);
                    break;

                case 6:
                    totalDetails.MiscCharges = this.ExtractMiscChargesTotal(ax, (AxaptaContainer)enumerator.Current);
                    break;

                case 7:
                    totalDetails.Discounts = this.ExtractDiscountsTotal(ax, (AxaptaContainer)enumerator.Current);
                    break;

                case 8:
                    totalDetails.OrderLines = this.ExtractOrderLinesTotal(ax, (AxaptaContainer)enumerator.Current);
                    break;
                }
            }
            return(totalDetails);
        }
        private List <IntershopWebService.TotalDetailsLine> ExtractOrderLinesTotal(Axapta ax, AxaptaContainer orderLineCont)
        {
            List <IntershopWebService.TotalDetailsLine> totalDetailsLineList = new List <IntershopWebService.TotalDetailsLine>();
            IEnumerator enumerator1 = orderLineCont.GetEnumerator();

            while (enumerator1.MoveNext())
            {
                IntershopWebService.TotalDetailsLine totalDetailsLine = new IntershopWebService.TotalDetailsLine();
                IEnumerator enumerator2 = ((AxaptaContainer)enumerator1.Current).GetEnumerator();
                int         num         = 0;
                while (enumerator2.MoveNext())
                {
                    switch (num++)
                    {
                    case 0:
                        totalDetailsLine.ItemID = Convert.ToString(enumerator2.Current);
                        break;

                    case 1:
                        totalDetailsLine.Qty = Math.Round(Convert.ToDouble(enumerator2.Current), 2);
                        break;

                    case 2:
                        totalDetailsLine.SalesUnit = Convert.ToString(enumerator2.Current);
                        break;

                    case 3:
                        totalDetailsLine.UnitPrice = Math.Round(Convert.ToDouble(enumerator2.Current), 2);
                        break;

                    case 4:
                        totalDetailsLine.LineNetAmount = Math.Round(Convert.ToDouble(enumerator2.Current), 2);
                        break;

                    case 5:
                        totalDetailsLine.Discounts = this.ExtractDiscountsTotalLine(ax, (AxaptaContainer)enumerator2.Current);
                        break;

                    case 6:
                        totalDetailsLine.MiscCharges = this.ExtractMiscChargesTotal(ax, (AxaptaContainer)enumerator2.Current);
                        break;
                    }
                }
                totalDetailsLineList.Add(totalDetailsLine);
            }
            return(totalDetailsLineList);
        }
        private IntershopWebService.DiscountLine ExtractDiscountsTotalLine(Axapta ax, AxaptaContainer discCont)
        {
            IntershopWebService.DiscountLine discountLine = new IntershopWebService.DiscountLine();
            IEnumerator enumerator = discCont.GetEnumerator();
            int         num        = 0;

            while (enumerator.MoveNext())
            {
                switch (num++)
                {
                case 0:
                    discountLine.DiscAmount = Math.Round(Convert.ToDouble(enumerator.Current), 2);
                    break;

                case 1:
                    discountLine.DiscPercent = Math.Round(Convert.ToDouble(enumerator.Current), 2);
                    break;
                }
            }
            return(discountLine);
        }
        private void ExtractPriceValues(AxaptaContainer priceData, out double salesPrice, out string priceTypeStr)
        {
            IEnumerator enumerator = priceData.GetEnumerator();

            salesPrice   = 0.0;
            priceTypeStr = "";
            int num = 0;

            while (enumerator.MoveNext())
            {
                switch (num++)
                {
                case 0:
                    salesPrice = Math.Round(Convert.ToDouble(enumerator.Current), 2);
                    break;

                case 3:
                    priceTypeStr = (int)enumerator.Current == 2 ? "List" : "Custom";
                    break;
                }
            }
        }
        private List <IntershopWebService.MiscCharge> ExtractMiscChargesTotal(Axapta ax, AxaptaContainer miscChargeCont)
        {
            List <IntershopWebService.MiscCharge> miscChargeList = new List <IntershopWebService.MiscCharge>();
            IEnumerator enumerator1 = miscChargeCont.GetEnumerator();

            while (enumerator1.MoveNext())
            {
                IntershopWebService.MiscCharge miscCharge = new IntershopWebService.MiscCharge();
                IEnumerator enumerator2 = ((AxaptaContainer)enumerator1.Current).GetEnumerator();
                int         num         = 0;
                while (enumerator2.MoveNext())
                {
                    switch (num++)
                    {
                    case 0:
                        miscCharge.code = Convert.ToString(enumerator2.Current);
                        break;

                    case 1:
                        miscCharge.description = Convert.ToString(enumerator2.Current);
                        break;

                    case 2:
                        miscCharge.value = Math.Round(Convert.ToDouble(enumerator2.Current), 2);
                        break;

                    case 3:
                        miscCharge.currency = Convert.ToString(enumerator2.Current);
                        break;
                    }
                }
                if (num > 0)
                {
                    miscChargeList.Add(miscCharge);
                }
            }
            return(miscChargeList);
        }