public CloseDepartureResponseType CloseDeparture(CloseDepartureRequestType request, bool dumpXml) { WMSInterfaceClient client = new WMSInterfaceClient("BasicHttpBinding_IWMSInterface", _url); try { RenewTicket(false); request.Ticket = _ticket; if (dumpXml) { new XMLHelper().DumpToFile(new XMLHelper().InterfaceClassToXml(request), LogFileName("DataToCentiro_CloseDeparture")); } CloseDepartureResponseType response = client.CloseDeparture(request); client.Close(); if (dumpXml) { new XMLHelper().DumpToFile(new XMLHelper().InterfaceClassToXml(response), LogFileName("DataFromCentiro_CloseDeparture")); } if (response.StatusCode == CentiroService.StatusCode.Ok) { return(response); } else if (response.StatusCode == CentiroService.StatusCode.InvalidTicket) { if (!_invalidTicketError) { RenewTicket(true); _invalidTicketError = true; return(CloseDeparture(request, dumpXml)); } else { return(response); } } else { Tracing.TraceEvent(TraceEventType.Error, 0, String.Format("Error for Close Departure .\nError status = {0}\nError Message = {1}", response.StatusCode, GetErrorString(response.StatusMessages))); throw new CentiroServiceAgentException(String.Format("Error for Close Departure .\nError status = {0}\nError Message = {1}", response.StatusCode, GetErrorString(response.StatusMessages))); } } catch (CommunicationException) { Tracing.TraceEvent(TraceEventType.Error, 0, "Error calling CloseDeparture."); client.Abort(); throw; } catch (TimeoutException) { Tracing.TraceEvent(TraceEventType.Error, 0, "Error calling CloseDeparture."); throw; } }
private void CloseDeparture(string requestClob) { CentiroCloseDepartureType report = _closeDepartureSerializer.Deserialize(new StringReader(requestClob)) as CentiroCloseDepartureType; CloseDepartureRequestType request = _businessDataMapper.Map(report, _documentType); if (request == null) { throw new CentiroAdapterException( string.Format("Failed to deserialize CloseDeparture clob. Data = {0}", requestClob)); } else { MessageId = Convert.ToString(DateTime.Now.Ticks); request.MessageId = MessageId; if (_isXmlDumpEnabled) { new XMLHelper().DumpToFile(new XMLHelper().InterfaceClassToXml(request), LogFileName("CloseDeparture_Request")); } CentiroServiceAgent csAdapter = GetCachedAdapter(report.url); CloseDepartureResponseType ur = csAdapter.CloseDeparture(request, _isXmlDumpEnabled); if (ur == null) { throw new CentiroAdapterException( string.Format("No data in CloseDeparture response. MessageId = {0}", request.MessageId)); } else { if (ur.CarrierDocCode != null) { foreach (string d in ur.CarrierDocCode) { GenericReport document = new GenericReport(); document.MetaData = new MetaDataType(); document.MetaData.applicationIdentity = "Warehouse"; document.MetaData.documentType = "C*CPS"; document.MetaData.documentSubType = ""; document.MetaData.terminalIdentity = report.terminal; document.MetaData.userIdentity = report.user; document.MetaData.printerIdentity = ""; document.MetaData.numberOfCopies = 1; document.Data = d; _receivedDocuments.Add(document); } } if (ur.CustomerSpecCode != null) { foreach (string d in ur.CustomerSpecCode) { GenericReport document = new GenericReport(); document.MetaData = new MetaDataType(); document.MetaData.applicationIdentity = "Warehouse"; document.MetaData.documentType = "C*CPS"; document.MetaData.documentSubType = ""; document.MetaData.terminalIdentity = report.terminal; document.MetaData.userIdentity = report.user; document.MetaData.printerIdentity = ""; document.MetaData.numberOfCopies = 1; document.Data = d; _receivedDocuments.Add(document); } } if (ur.ShipmentDetails != null) { foreach (ShipmentDetails shipment in ur.ShipmentDetails) { SaveShipment(shipment); } } } } }