Example #1
0
        public MovilizerResponse PostRequest(MovilizerRequest request)
        {
            MovilizerResponse response = null;
            int countdown = 3;

            while (response == null && countdown > 0)
            {
                try
                {
                    countdown--;
                    response = Movilizer(request);
                }
                catch (Exception e)
                {
                    LogFactory.WriteError(e.ToString());

                    if (countdown > 0)
                    {
                        // sleep for 10 seconds and try again
                        Thread.Sleep(10000);
                    }
                    else
                    {
                        throw;
                    }
                }
            }

            return(response);
        }
Example #2
0
        protected void EnqueueResponse(MovilizerResponse response)
        {
            EnqueueInboundQueueObjects(response.replyMovelet);
            EnqueueInboundQueueObjects(response.uploadContainer);

            // save acknowledge key for the next request
            _requestAckKey = response.requestAcknowledgeKey;
        }
Example #3
0
        public void TreatResponse(MovilizerResponse response)
        {
            this.EnqueueResponse(response);

            // log status messages
            MovilizerStatusMessage[] statusMessages = response.statusMessage;
            if (statusMessages != null)
            {
                foreach (MovilizerStatusMessage statusMessage in statusMessages)
                {
                    LogFactory.WriteEntry(statusMessage);
                }
            }

            // log movelet errors
            MovilizerMoveletError[] moveletErrors = response.moveletError;
            if (moveletErrors != null)
            {
                foreach (MovilizerMoveletError moveletError in moveletErrors)
                {
                    LogFactory.WriteEntry(moveletError);
                }
            }
        }
        public MovilizerResponse PostMovilizerRequest(bool synchronousReponse = false, int numResponses = 1000, string requestTrackingKey = "")
        {
            this.Url = MovilizerWebServiceConstants.GetWebServiceUrl();
            // create request object
            MovilizerRequest request = this.ComposeRequest();

            request.synchronousResponse = synchronousReponse;
            request.numResponses        = numResponses;
            request.requestTrackingKey  = requestTrackingKey;

            string debugOutput = Configuration.GetDebugOutputPath();

            if (!String.IsNullOrEmpty(debugOutput))
            {
                XmlHelper.SerializeToFile(debugOutput + "MovilizerRequest.xml", request);
            }

            // consume web service
            MovilizerResponse response = null;
            int countdown = 3;

            while (response == null && countdown > 0)
            {
                try
                {
                    countdown--;
                    response = Movilizer(request);
                }
                catch (Exception e)
                {
                    LogFactory.WriteError(e.ToString());

                    if (countdown > 0)
                    {
                        // sleep for 10 seconds and try again
                        Thread.Sleep(10000);
                    }
                    else if (Configuration.ForceRequeingOnError())
                    {
                        // Requeue waiting message
                        LogFactory.WriteWarning("Error exceeded 3 consecutive retries, reqeuing messages for further processing.");

                        _moveletSets.AddRange(request.moveletSet);
                        _moveletAssignments.AddRange(request.moveletAssignment);
                        request.moveletDelete           = _moveletDeletes.ToArray();
                        request.masterdataPoolUpdate    = _masterdataPoolUpdate.ToArray();
                        request.moveletAssignmentDelete = _moveletDeleteAssignments.ToArray();
                        request.documentPoolUpdate      = _documentPoolUpdate.ToArray();
                        request.participantReset        = _ParticipantReset.ToArray();
                    }
                }
            }

            if (response != null)
            {
                this.EnqueueResponse(response);

                // log status messages
                MovilizerStatusMessage[] statusMessages = response.statusMessage;
                if (statusMessages != null)
                {
                    foreach (MovilizerStatusMessage statusMessage in statusMessages)
                    {
                        LogFactory.WriteEntry(statusMessage);
                    }
                }

                // log movelet errors
                MovilizerMoveletError[] moveletErrors = response.moveletError;
                if (moveletErrors != null)
                {
                    foreach (MovilizerMoveletError moveletError in moveletErrors)
                    {
                        LogFactory.WriteEntry(moveletError);
                    }
                }
            }

            return(response);
        }
Example #5
0
        public MovilizerResponse PostMovilizerRequest()
        {
            // refresh the web service url
            MovilizerRequest request = TreatRequest();


            // consume web service
            MovilizerResponse response = null;

            if (Configuration.GetSendToQueues())
            {
                // Enqueue request
                try
                {
                    MessageQueue requestQueue  = new MessageQueue(Configuration.GetRequestQueue());
                    MessageQueue responseQueue = new MessageQueue(Configuration.GetResponseQueue());
                    responseQueue.Formatter = new XmlMessageFormatter(new[] { typeof(MovilizerResponse) });
                    using (MessageQueueTransaction mx = new MessageQueueTransaction())
                    {
                        mx.Begin();
                        requestQueue.Send(request, mx);
                        mx.Commit();
                    }

                    using (MessageQueueTransaction mx = new MessageQueueTransaction())
                    {
                        mx.Begin();
                        response = responseQueue.Receive(new TimeSpan(0, 0, 10), mx).Body as MovilizerResponse;
                        mx.Commit();
                    }
                }
                catch (Exception e)
                {
                    LogFactory.WriteError(e.ToString());
                }
            }
            else
            {
                try
                {
                    response = PostRequest(request);
                }
                catch
                {
                    if (Configuration.ForceRequeingOnError())
                    {
                        // Requeue waiting message
                        LogFactory.WriteWarning("Error exceeded 3 consecutive retries, reqeuing messages for further processing.");

                        _moveletSets.AddRange(request.moveletSet);
                        _moveletAssignments.AddRange(request.moveletAssignment);
                        request.moveletDelete           = _moveletDeletes.ToArray();
                        request.masterdataPoolUpdate    = _masterdataPoolUpdate.ToArray();
                        request.moveletAssignmentDelete = _moveletDeleteAssignments.ToArray();
                        request.documentPoolUpdate      = _documentPoolUpdate.ToArray();
                        request.participantReset        = _moveletParticipantReset.ToArray();
                    }
                }
            }

            if (response != null)
            {
                TreatResponse(response);
            }

            return(response);
        }
        protected void EnqueueResponse(MovilizerResponse response)
        {
            EnqueueInboundQueueObjects(response.replyMovelet);
            EnqueueInboundQueueObjects(response.uploadContainer);
            EnqueueInboundQueueObjects(response.masterdataAck);
            EnqueueInboundQueueObjects(response.masterdataDeleted);
            EnqueueInboundQueueObjects(response.participantAck);

            // save acknowledge key for the next request
            _requestAckKey = response.requestAcknowledgeKey;
        }