public IActionResult Get() { _logger.LogInfo("Get request received for all jobs"); try { var jobsList = _fileUploadJobManager.GetAllJobs().ToList(); jobsList = jobsList.OrderByDescending(x => { switch (x.Status) { case JobStatusType.Completed: return(10); case JobStatusType.Failed: return(20); case JobStatusType.FailedRetry: return(30); case JobStatusType.Paused: return(40); case JobStatusType.MovedForProcessing: case JobStatusType.Processing: return(50); default: return(60); } }).ThenByDescending(x => x.Priority).ThenBy(x => x.JobId).ToList(); _logger.LogInfo($"Returning jobs list with count: {jobsList.Count}"); return(Ok(jobsList.ToList())); } catch (Exception ex) { _logger.LogError("Get all jobs failed", ex); return(BadRequest()); } }
public async Task GetAllJobs_Success() { IContainer container = Registrations(); List <FileUploadJob> result; using (var scope = container.BeginLifetimeScope()) { // Create the schema in the database var options = scope.Resolve <DbContextOptions <JobQueueDataContext> >(); using (var context = new JobQueueDataContext(options)) { context.Database.EnsureCreated(); } IFileUploadJobManager manager = scope.Resolve <IFileUploadJobManager>(); await manager.AddJob(new FileUploadJob() { JobId = 1, Ukprn = 100, }); await manager.AddJob(new FileUploadJob() { JobId = 2, Ukprn = 100, }); await manager.AddJob(new FileUploadJob() { JobId = 2, Ukprn = 999900, }); result = (await manager.GetAllJobs()).ToList(); } result.Should().NotBeNull(); result.Count.Should().Be(3); }