public DensityRateShipmentResponse[] CalculateDensityRates(DensityRateShipmentRequest[] requests) { // DensityRateShipmentResponse[] response = null; RateWareXLPortTypeClient client = new RateWareXLPortTypeClient(); try { AuthenticationToken authToken = getAuthenticationToken(); if (client.isReady(authToken)) { response = client.DensityRateShipmentMultiple(authToken, requests); } client.Close(); } catch (TimeoutException te) { client.Abort(); throw new ApplicationException(te.Message); } catch (FaultException fe) { client.Abort(); throw new ApplicationException(fe.Message); } catch (CommunicationException ce) { client.Abort(); throw new ApplicationException(ce.Message); } return(response); }