private void UpdateShipment(string requestClob) { CentiroUpdateShipment report = _updateShipmentSerializer.Deserialize(new StringReader(requestClob)) as CentiroUpdateShipment; UpdateShipmentRequestType request = _businessDataMapper.Map(report); if (request == null) { throw new CentiroAdapterException( string.Format("Failed to deserialize UpdateShipment clob. Data = {0}", requestClob)); } else { MessageId = Convert.ToString(DateTime.Now.Ticks); request.MessageId = MessageId; if (_isXmlDumpEnabled) { new XMLHelper().DumpToFile(new XMLHelper().InterfaceClassToXml(request), LogFileName("UpdateShipment_Request")); } CentiroServiceAgent csAdapter = GetCachedAdapter(report.url); csAdapter.UpdateShipment(request, _isXmlDumpEnabled); } }
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); } } } } }
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); } } } }
private void PrintParcel(string requestClob, string whId) { CentiroPrintParcels report = _printParcelSerializer.Deserialize(new StringReader(requestClob)) as CentiroPrintParcels; if (_fetchEachPrinterType) { _printerType = GetPrinterType(report.terminal, "C*CPL", whId); } PrintParcelsRequestType request = _businessDataMapper.Map(report, _printerType); if (request == null) { throw new CentiroAdapterException( string.Format("Failed to deserialize PrintParcel clob. Data = {0}", requestClob)); } else { MessageId = Convert.ToString(DateTime.Now.Ticks); request.MessageId = MessageId; if (_isXmlDumpEnabled) { new XMLHelper().DumpToFile(new XMLHelper().InterfaceClassToXml(request), LogFileName("PrintParcel_Request")); } CentiroServiceAgent csAdapter = GetCachedAdapter(report.url); PrintParcelsResponseType ur = csAdapter.PrintParcel(request, _isXmlDumpEnabled); if (ur == null) { throw new CentiroAdapterException( string.Format("No data in PrintParcel 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; if (report.printerIdentity == null) { document.MetaData.printerIdentity = ""; } else { document.MetaData.printerIdentity = report.printerIdentity; } document.MetaData.numberOfCopies = 1; document.Data = ur.LabelCode; _receivedDocuments.Add(document); } if (ur.ParcelDetails != null) { foreach (ParcelDetails p in ur.ParcelDetails) { SaveParcel(p); } } } } }
private CentiroServiceAgent GetCachedAdapter(string url) { CentiroServiceAgent csAdapter; // fallback to overcome bugs in server code - if only one url is present in the cache and // url from the server is null, then use the already cached url if (string.IsNullOrEmpty(url)) { Dictionary <string, CentiroServiceAgent> .KeyCollection kc = _adapters.Keys; if (kc != null) { if (kc.Count == 1) { foreach (string k in kc) { url = k; } } } } if (string.IsNullOrEmpty(url)) { string exceptionMsg = "Empty url received from queue without already present cached url or more than one url in cache. Unable to determine host addess, aborting send."; Tracing.TraceEvent(TraceEventType.Error, 0, exceptionMsg); throw new CentiroAdapterException(exceptionMsg); } if (_adapters.ContainsKey(url)) { csAdapter = _adapters[url]; } else { try { csAdapter = new CentiroServiceAgent(url, Tracing); if (csAdapter != null) { csAdapter.SetCredentials(_userName, _password, true); csAdapter.LogDirectory = _logDirectory; csAdapter.AdapterId = _adapterId; _adapters.Add(url, csAdapter); } } catch (CentiroServiceAgentException ex) { Tracing.TraceEvent(TraceEventType.Error, 0, string.Format("Exception while creating adapter for url = {0}", url)); Tracing.TraceData(TraceEventType.Error, 0, ex); throw; } } csAdapter.NewCentiroCall(); return(csAdapter); }