/// <summary> /// Convert to service model /// </summary> /// <returns></returns> public static JobInfoQueryModel ToServiceModel( this JobInfoQueryApiModel model) { if (model == null) { return(null); } return(new JobInfoQueryModel { Name = model.Name, JobConfigurationType = model.JobConfigurationType, Status = (Agent.Framework.Models.JobStatus?)model.Status }); }
public async Task <JobInfoListApiModel> QueryJobsAsync( [FromBody] JobInfoQueryApiModel query, [FromQuery] int?pageSize) { if (Request.Headers.ContainsKey(HttpHeader.MaxItemCount)) { pageSize = int.Parse(Request.Headers[HttpHeader.MaxItemCount] .FirstOrDefault()); } var result = await _jobManager.QueryJobsAsync( query.ToServiceModel(), pageSize); return(result.ToApiModel()); }
/// <inheritdoc/> public async Task <JobInfoListApiModel> QueryJobsAsync(JobInfoQueryApiModel query, int?pageSize, CancellationToken ct) { var request = _httpClient.NewRequest($"{_serviceUri}/v2/jobs", _resourceId); if (pageSize != null) { request.AddHeader(HttpHeader.MaxItemCount, pageSize.ToString()); } request.SetContent(query); var response = await _httpClient.PostAsync(request, ct).ConfigureAwait(false); response.Validate(); return(response.GetContent <JobInfoListApiModel>()); }
/// <summary> /// List all jobs /// </summary> /// <param name="service"></param> /// <param name="query"></param> /// <param name="ct"></param> /// <returns></returns> public static async Task <IEnumerable <JobInfoApiModel> > QueryAllJobsAsync( this IPublisherJobServiceApi service, JobInfoQueryApiModel query, CancellationToken ct = default) { var jobs = new List <JobInfoApiModel>(); var result = await service.QueryJobsAsync(query, null, ct); if (result.Jobs != null) { jobs.AddRange(result.Jobs); } while (result.ContinuationToken != null) { result = await service.ListJobsAsync(result.ContinuationToken, null, ct); if (result.Jobs != null) { jobs.AddRange(result.Jobs); } } return(jobs); }