public IntershopWebService.TotalDetails OrderTotalAmountDetails(string customerID, List <IntershopWebService.IshOrderLine> orderLines, string IshBasketID, string company) { MessageLogger.info(string.Format("OrderTotalAmountDetails(company={0}, customerID={1})", (object)company, (object)customerID)); Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); Axapta ax = this.axLogon(company); ax.Refresh(); try { AxaptaContainer axaptaContainer1 = ax.CreateAxaptaContainer(); foreach (IntershopWebService.IshOrderLine orderLine in orderLines) { IntershopWebService.IshOrderLine productIn = orderLine; string str = string.Empty; productIn.size = this.normalizeXmlString(productIn.size); productIn.color = this.normalizeXmlString(productIn.color); List <IntershopWebService.SizeStock> itemDims = this.getItemDims(productIn.ItemID, company); if (itemDims.Count > 0 && (!string.IsNullOrEmpty(productIn.size) || !string.IsNullOrEmpty(productIn.color))) { if (itemDims.FindIndex((Predicate <IntershopWebService.SizeStock>)(f => f.size == productIn.size)) >= 0) { str = productIn.size; } if (itemDims.FindIndex((Predicate <IntershopWebService.SizeStock>)(f => f.color == productIn.color)) >= 0) { str = productIn.color; } } AxaptaContainer axaptaContainer2 = ax.CreateAxaptaContainer(); axaptaContainer2.Add((object)productIn.ItemID); axaptaContainer2.Add((object)productIn.Qty); axaptaContainer2.Add((object)productIn.SalesUnit); axaptaContainer2.Add((object)str); axaptaContainer1.Add((object)axaptaContainer2); } AxaptaContainer totalContainer = (AxaptaContainer)ax.CallStaticClassMethod("BTX_ISHItemDescriptionProxy", "CalcTotalAmountDetails", (object)customerID, (object)axaptaContainer1, (object)IshBasketID); stopwatch.Stop(); MessageLogger.info(string.Format("OrderTotalAmount() -> {0} ms", (object)stopwatch.ElapsedMilliseconds)); return(this.extractTotalDetails(ax, totalContainer)); } catch (Exception ex) { MessageLogger.info(string.Format("OrderTotalAmount() -> error: {0}", (object)ex.Message)); return((IntershopWebService.TotalDetails)null); } finally { ax.Logoff(); } }