MWS.WebService.MovilizerWebService.PostMovilizerRequest C# (CSharp) Метод

PostMovilizerRequest() публичный Метод

public PostMovilizerRequest ( bool synchronousReponse = false, int numResponses = 1000, string requestTrackingKey = "" ) : MovilizerResponse
synchronousReponse bool
numResponses int
requestTrackingKey string
Результат MovilizerResponse
        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;
        }