コード例 #1
0
 public Task<JobList> ListJobs()
 {
     this.ListJobsCalled = true;
     var jobList = new JobList();
     jobList.Jobs.Add(this.JobDetails);
     return Task.Run(() => jobList);
 }
コード例 #2
0
 public void GivenIHaveAListOfJobIds()
 {
     var list = new JobList();
     list.HttpStatusCode = HttpStatusCode.Accepted;
     list.ErrorCode = string.Empty;
     this.transferObject = list;
 }
コード例 #3
0
 public string SerializeJobList(JobList jobs)
 {
     var result = new PassthroughResponse();
     if (jobs.ErrorCode.IsNotNullOrEmpty() || jobs.HttpStatusCode != HttpStatusCode.Accepted)
     {
         result.Error = new PassthroughErrorResponse { StatusCode = jobs.HttpStatusCode, ErrorId = jobs.ErrorCode };
     }
     result.Data = jobs.Jobs.Select(j => j.JobId).ToList();
     return this.SerializeJobDetails(result);
 }
        public Task<JobList> ListJobs()
        {
            this.LogMessage("Listing jobs");
            var jobDetailList = new JobList();
            var changedJobs = new List<JobDetails>();
            lock (this.cluster.JobQueue)
            {
                foreach (var jobHistoryItem in this.cluster.JobQueue.Values)
                {
                    var changedJob = this.ChangeJobState(jobHistoryItem);
                    jobDetailList.Jobs.Add(changedJob);
                    changedJobs.Add(changedJob);
                }

                foreach (var changedJob in changedJobs)
                {
                    this.cluster.JobQueue[changedJob.JobId] = changedJob;
                }
            }

            return Task.FromResult(jobDetailList);
        }
コード例 #5
0
 /// <summary>
 /// Deserailzies a payload into a JobList.
 /// </summary>
 /// <param name="payload">
 /// The payload.
 /// </param>
 /// <returns>
 /// An JobList representing the payload.
 /// </returns>
 public JobList DeserializeJobList(string payload)
 {
     var jobs = new List<JobDetails>();
     JobList results = new JobList();
     XmlDocumentConverter documentConverter = new XmlDocumentConverter();
     var document = documentConverter.GetXmlDocument(payload);
     DynaXmlNamespaceTable nameTable = new DynaXmlNamespaceTable(document);
     var prefix = nameTable.GetPrefixesForNamespace("http://schemas.microsoft.com/2003/10/Serialization/Arrays").SingleOrDefault();
     if (prefix.IsNotNull())
     {
         var query = string.Format(CultureInfo.InvariantCulture, "//def:PassthroughResponse/def:Data/{0}:string", prefix);
         var nodes = document.SelectNodes(query, nameTable.NamespaceManager);
         foreach (XmlNode node in nodes)
         {
             jobs.Add(new JobDetails() { JobId = node.InnerText });
         }
     }
     results.ErrorCode = string.Empty;
     results.HttpStatusCode = HttpStatusCode.Accepted;
     XmlElement error = (XmlElement)document.SelectSingleNode("//def:PassthroughResponse/def:Error", nameTable.NamespaceManager);
     if (error.IsNotNull())
     {
         var errorId = error.SelectSingleNode("//def:ErrorId", nameTable.NamespaceManager);
         if (errorId.IsNotNull())
         {
             results.ErrorCode = errorId.InnerText;
         }
         var statusCode = error.SelectSingleNode("//def:StatusCode", nameTable.NamespaceManager);
         if (statusCode.IsNotNull())
         {
             HttpStatusCode httpStatusCode = HttpStatusCode.Accepted;
             if (HttpStatusCode.TryParse(statusCode.InnerText, out httpStatusCode))
             {
                 results.HttpStatusCode = httpStatusCode;
             }
         }
     }
     results.Jobs.AddRange(jobs);
     return results;
 }