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); }
protected void EnqueueResponse(MovilizerResponse response) { EnqueueInboundQueueObjects(response.replyMovelet); EnqueueInboundQueueObjects(response.uploadContainer); // save acknowledge key for the next request _requestAckKey = response.requestAcknowledgeKey; }
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); }
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; }