Aditi.Scheduler.ScheduledTasks.Poll C# (CSharp) Method

Poll() private method

private Poll ( string pollingUrl ) : OperationStatus
pollingUrl string
return Aditi.Scheduler.Models.OperationStatus
        private OperationStatus Poll(string pollingUrl)
        {
            int pollCount = 0;
            OperationStatus operationStatus = null;
            //start polling
            while (pollCount != MaxRetryCount)
            {
                pollCount++;
                var pollingWebRequest = CreateWebApiRequest(pollingUrl);
                pollingWebRequest.Method = HttpMethod.Get.Method;

                try
                {
                    var polledWebResponse = (HttpWebResponse) pollingWebRequest.GetResponse();
                    using (var sr = new StreamReader(polledWebResponse.GetResponseStream()))
                    {
                        var jsonResponse = sr.ReadToEnd();
                        operationStatus = JsonConvert.DeserializeObject<OperationStatus>(jsonResponse);
                        if (operationStatus.Status != StatusCode.Pending)
                            return operationStatus;
                    }
                    Thread.Sleep(1000);
                }
                catch (WebException we)
                {
                    throw CreateSchedulerException(we);
                }
            }

            if (operationStatus != null && operationStatus.Status == StatusCode.Pending)
                operationStatus.Status = StatusCode.TimeOut;

            return operationStatus;
        }