Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 4
0
        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);
                        }
                    }
                }
            }
        }
Ejemplo n.º 5
0
        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);
        }