private void PrintShipment(string requestClob, string whId) { CentiroPrintShipmentType report = _printShipmentSerializer.Deserialize(new StringReader(requestClob)) as CentiroPrintShipmentType; if (_fetchEachPrinterType) { bool _check = (string.Equals(report.createCustomerSpec, "1") || string.Equals(report.createLabels, "1") || string.Equals(report.createShipmentDoc, "1")); if (report.terminal != null && _check) { _printerType = GetPrinterType(report.terminal, "C*CPL", whId); } } PrintShipmentRequestType request = _businessDataMapper.Map(report, _printerType, _documentType); if (request == null) { throw new CentiroAdapterException( string.Format("Failed to deserialize PrintShipment clob. Data = {0}", requestClob)); } else { MessageId = Convert.ToString(DateTime.Now.Ticks); request.MessageId = MessageId; if (_isXmlDumpEnabled) { new XMLHelper().DumpToFile(new XMLHelper().InterfaceClassToXml(request), LogFileName("PrintShipment_Request")); } CentiroServiceAgent csAdapter = GetCachedAdapter(report.url); PrintShipmentResponseType ur = csAdapter.PrintShipment(request, _isXmlDumpEnabled); if (ur == null) { throw new CentiroAdapterException( string.Format("No data in PrintShipment response. MessageId = {0}", request.MessageId)); } else { if (ur.LabelCode != null) { GenericReport document = new GenericReport(); document.MetaData = new MetaDataType(); document.MetaData.applicationIdentity = "Warehouse"; document.MetaData.documentType = "C*CPL"; document.MetaData.documentSubType = ""; document.MetaData.terminalIdentity = report.terminal; document.MetaData.userIdentity = report.user; document.MetaData.printerIdentity = ""; document.MetaData.numberOfCopies = 1; document.Data = ur.LabelCode; _receivedDocuments.Add(document); } if (ur.ShipmentDocCode != null) { foreach (string d in ur.ShipmentDocCode) { GenericReport document = new GenericReport(); document.MetaData = new MetaDataType(); document.MetaData.applicationIdentity = "Warehouse"; document.MetaData.documentType = "C*BOL"; document.MetaData.documentSubType = ""; document.MetaData.terminalIdentity = report.terminal; document.MetaData.userIdentity = report.user; document.MetaData.printerIdentity = ""; document.MetaData.numberOfCopies = (sbyte)report.numberOfCopies; 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*BOL"; document.MetaData.documentSubType = ""; document.MetaData.terminalIdentity = report.terminal; document.MetaData.userIdentity = report.user; document.MetaData.printerIdentity = ""; document.MetaData.numberOfCopies = (sbyte)report.numberOfCopies; document.Data = d; _receivedDocuments.Add(document); } } if (ur.ShipmentDetails != null) { SaveShipment(ur.ShipmentDetails); } } } }
public PrintShipmentResponseType PrintShipment(PrintShipmentRequestType 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_PrintShipment")); } PrintShipmentResponseType response = client.PrintShipment(request); client.Close(); if (dumpXml) { new XMLHelper().DumpToFile(new XMLHelper().InterfaceClassToXml(response), LogFileName("DataFromCentiro_PrintShipment")); } if (response.StatusCode == CentiroService.StatusCode.Ok) { return(response); } else if (response.StatusCode == CentiroService.StatusCode.InvalidTicket) { if (!_invalidTicketError) { RenewTicket(true); _invalidTicketError = true; return(PrintShipment(request, dumpXml)); } else { return(response); } } else { Tracing.TraceEvent(TraceEventType.Error, 0, String.Format("Error for print shipment .\nError status = {0}\nError Message = {1}", response.StatusCode, GetErrorString(response.StatusMessages))); throw new CentiroServiceAgentException(String.Format("Error for Print Shipment .\nError status = {0}\nError Message = {1}", response.StatusCode, GetErrorString(response.StatusMessages))); } } catch (CommunicationException) { Tracing.TraceEvent(TraceEventType.Error, 0, "Error calling PrintShipment."); client.Abort(); throw; } catch (TimeoutException) { Tracing.TraceEvent(TraceEventType.Error, 0, "Error calling PrintShipment."); throw; } }