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

GetOperationStatusAsync() public method

public GetOperationStatusAsync ( System.Guid operationId, bool blocked = false ) : Task
operationId System.Guid
blocked bool
return Task
        public async Task<OperationStatus> GetOperationStatusAsync(Guid operationId, bool blocked = false)
        {
            OperationStatus operationStatus = null;
            var statusUrl = SchedulerConstants.StatusRelativePath + operationId.ToString();

            var statusWebRequest = CreateWebApiRequest(statusUrl);
            statusWebRequest.Method = HttpMethod.Get.Method;
            try
            {
                var statusWebResponse = (HttpWebResponse) await statusWebRequest.GetResponseAsync();
                using (var sr = new StreamReader(statusWebResponse.GetResponseStream()))
                {
                    var jsonResponse = await sr.ReadToEndAsync();
                    operationStatus = JsonConvert.DeserializeObject<OperationStatus>(jsonResponse);
                }
            }
            catch (WebException we)
            {
                CreateSchedulerException(we);
            }

            if (operationStatus != null && operationStatus.Status == StatusCode.Pending)
            {
                if (blocked)
                    operationStatus = await PollAsync(statusUrl);
            }
            if (operationStatus != null  && operationStatus.Data != null)
                operationStatus.Data = JsonObject.Parse(operationStatus.Data.ToString());

            return operationStatus;
        }