public UpdateParcelsResponseType UpdateParcels(UpdateParcelsRequestType 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_UpdateParcel"));
                }

                UpdateParcelsResponseType response = client.UpdateParcels(request);
                client.Close();

                if (dumpXml)
                {
                    new XMLHelper().DumpToFile(new XMLHelper().InterfaceClassToXml(response), LogFileName("DataFromCentiro_UpdateParcels"));
                }

                if (response.StatusCode == CentiroService.StatusCode.Ok)
                {
                    return(response);
                }
                else if (response.StatusCode == CentiroService.StatusCode.InvalidTicket)
                {
                    if (!_invalidTicketError)
                    {
                        RenewTicket(true);
                        _invalidTicketError = true;
                        return(UpdateParcels(request, dumpXml));
                    }
                    else
                    {
                        return(response);
                    }
                }
                else
                {
                    Tracing.TraceEvent(TraceEventType.Error, 0, String.Format("Error for Update Parcel .\nError status = {0}\nError Message = {1}",
                                                                              response.StatusCode, GetErrorString(response.StatusMessages)));
                    throw new CentiroServiceAgentException(String.Format("Error for Update Parcel .\nError status = {0}\nError Message = {1}",
                                                                         response.StatusCode, GetErrorString(response.StatusMessages)));
                }
            }

            catch (CommunicationException)
            {
                Tracing.TraceEvent(TraceEventType.Error, 0, "Error calling UpdateParcel.");
                client.Abort();
                throw;
            }
            catch (TimeoutException)
            {
                Tracing.TraceEvent(TraceEventType.Error, 0, "Error calling UpdateParcel.");
                throw;
            }
        }
Пример #2
0
        private void UpdateParcel(string requestClob)
        {
            CentiroUpdateParcels     report  = _updateParcelSerializer.Deserialize(new StringReader(requestClob)) as CentiroUpdateParcels;
            UpdateParcelsRequestType request = _businessDataMapper.Map(report);

            if (request == null)
            {
                throw new CentiroAdapterException(
                          string.Format("Failed to deserialize UpdateParcel clob. Data = {0}", requestClob));
            }
            else
            {
                MessageId         = Convert.ToString(DateTime.Now.Ticks);
                request.MessageId = MessageId;

                if (_isXmlDumpEnabled)
                {
                    new XMLHelper().DumpToFile(new XMLHelper().InterfaceClassToXml(request), LogFileName("UpdateParcel_Request"));
                }

                CentiroServiceAgent       csAdapter = GetCachedAdapter(report.url);
                UpdateParcelsResponseType ur        = csAdapter.UpdateParcels(request, _isXmlDumpEnabled);
            }
        }