public Task<JobList> ListJobs() { this.ListJobsCalled = true; var jobList = new JobList(); jobList.Jobs.Add(this.JobDetails); return Task.Run(() => jobList); }
public void GivenIHaveAListOfJobIds() { var list = new JobList(); list.HttpStatusCode = HttpStatusCode.Accepted; list.ErrorCode = string.Empty; this.transferObject = list; }
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); }
/// <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; }