예제 #1
0
        public async Task <DataJobStatusDetail> GetJobStatus(string messageId)
        {
            DataJobStatusDetail jobStatusDetail = null;

            /// get status
            UriBuilder statusUri  = new UriBuilder(ClientConfiguration.Default.ActiveDirectoryResource);
            string     activityId = ClientConfiguration.Default.CustomerImportActivityId;


            statusUri.Path = string.Format(@"api/connector/jobstatus/{0}", activityId);

            string statusQuery = string.Format("jobid={0}", messageId.Replace(@"""", ""));

            statusUri.Query = statusQuery;


            //send a request to get the message status
            AXUtilities axUtil = new AXUtilities();


            var response = await axUtil.GetRequestAsync(statusUri.Uri);

            if (response.IsSuccessStatusCode)
            {
                // Deserialize response to the DataJobStatusDetail object
                jobStatusDetail = JsonConvert.DeserializeObject <DataJobStatusDetail>(response.Content.ReadAsStringAsync().Result);
            }
            else
            {
            }

            return(jobStatusDetail);
        }
예제 #2
0
        public async Task <HttpResponseMessage> WaitForJob(string messageId)
        {
            DataJobStatusDetail jobStatusDetail = null;
            HttpResponseMessage responseMsg     = Request.CreateResponse(HttpStatusCode.Accepted);
            string relativeUri = string.Empty;


            /// get status
            UriBuilder statusUri  = new UriBuilder(ClientConfiguration.Default.ActiveDirectoryResource);
            string     activityId = ClientConfiguration.Default.CustomerImportActivityId;


            statusUri.Path = string.Format(@"api/connector/jobstatus/{0}", activityId);

            string statusQuery = string.Format("jobid={0}", messageId.Replace(@"""", ""));

            statusUri.Query = statusQuery;


            //send a request to get the message status
            AXUtilities axUtil = new AXUtilities();


            var response = await axUtil.GetRequestAsync(statusUri.Uri);

            if (response.IsSuccessStatusCode)
            {
                // Deserialize response to the DataJobStatusDetail object
                jobStatusDetail = JsonConvert.DeserializeObject <DataJobStatusDetail>(response.Content.ReadAsStringAsync().Result);

                if (jobStatusDetail != null)
                {
                    if (jobStatusDetail.DataJobStatus.DataJobState == DataJobState.Processed || jobStatusDetail.DataJobStatus.DataJobState == DataJobState.ProcessedWithErrors)
                    {
                        responseMsg.StatusCode = HttpStatusCode.OK;
                    }
                    else
                    {
                        responseMsg.StatusCode       = HttpStatusCode.Accepted;
                        relativeUri                  = string.Format("{0}", messageId);
                        responseMsg.Headers.Location = new Uri(Request.RequestUri, relativeUri);
                    }
                }
            }
            else
            {
            }


            return(responseMsg);
        }