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

PollAsync() private method

private PollAsync ( string pollingUrl ) : Task
pollingUrl string
return Task
        private async Task<OperationStatus> PollAsync(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) await pollingWebRequest.GetResponseAsync();
                    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;
        }