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

GetOperationStatus() public method

public GetOperationStatus ( System.Guid operationId, bool blocked = false ) : OperationStatus
operationId System.Guid
blocked bool
return Aditi.Scheduler.Models.OperationStatus
        public OperationStatus GetOperationStatus(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) statusWebRequest.GetResponse();
                using (var sr = new StreamReader(statusWebResponse.GetResponseStream()))
                {
                    var jsonResponse = sr.ReadToEnd();
                    operationStatus = JsonConvert.DeserializeObject<OperationStatus>(jsonResponse);
                }
            }
            catch (WebException we)
            {
                throw CreateSchedulerException(we);
            }
            if (operationStatus != null && operationStatus.Status == StatusCode.Pending)
            {
                if (blocked)
                    operationStatus = Poll(statusUrl);
            }
           
            if(operationStatus != null && (operationStatus.Status == StatusCode.Success || operationStatus.Status == StatusCode.Error) )
                operationStatus.Data = JsonConvert.DeserializeObject<Dictionary<string, object>>(operationStatus.Data.ToString());

            return operationStatus;
        }