public IActionResult GetLatestPerPeriodForUkprn(long ukprn, DateTime startDateTimeUtc, DateTime endDateTimeUtc) { _logger.LogInfo($"Request received to GetLatestPerPeriodForUkprn with ukprn: {ukprn}, start date :{startDateTimeUtc}, end date : {endDateTimeUtc}"); if (ukprn == 0) { _logger.LogWarning("Request received with ukprn 0"); return(BadRequest()); } var jobsList = _fileUploadJobManager.GetLatestJobsPerPeriodByUkprn(ukprn, startDateTimeUtc, endDateTimeUtc).OrderByDescending(x => x.DateTimeSubmittedUtc).ToList(); _logger.LogInfo($"Returning {jobsList.Count} jobs successfully for ukprn: {ukprn}"); return(Ok(jobsList)); }
public async Task GetLatestJobsPerPeriodByUkprn_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, JobType = JobType.EsfSubmission, Ukprn = 10000116, FileName = "esf.csv", CollectionName = "ESF", CollectionYear = 1819, Status = JobStatusType.Completed, PeriodNumber = 1, DateTimeSubmittedUtc = DateTime.Now.AddMinutes(-10), }); await manager.AddJob(new FileUploadJob() { JobId = 2, JobType = JobType.EasSubmission, Ukprn = 10000116, FileName = "eas.csv", CollectionName = "EAS", CollectionYear = 1819, PeriodNumber = 1, Status = JobStatusType.Completed, DateTimeSubmittedUtc = DateTime.Now.AddMinutes(-10), }); await manager.AddJob(new FileUploadJob() { JobId = 3, Ukprn = 10000116, FileName = "ilr1819.xml", CollectionName = "ILR1819", CollectionYear = 1819, PeriodNumber = 1, JobType = JobType.IlrSubmission, Status = JobStatusType.Completed, }); await manager.AddJob(new FileUploadJob() { JobId = 4, Ukprn = 10000116, FileName = "ilr1718.xml", CollectionName = "ILR1718", CollectionYear = 1718, PeriodNumber = 1, JobType = JobType.IlrSubmission, Status = JobStatusType.Completed, }); await manager.AddJob(new FileUploadJob() { JobId = 5, Ukprn = 10000116, FileName = "ilr_latest_not_completed.xml", CollectionName = "ILR1819", CollectionYear = 1819, PeriodNumber = 1, JobType = JobType.IlrSubmission, Status = JobStatusType.Failed, DateTimeSubmittedUtc = DateTime.Now.AddMinutes(-50), }); result = (await manager.GetLatestJobsPerPeriodByUkprn(10000116, DateTime.Now.AddDays(-1), DateTime.Now)) .ToList(); } result.Should().NotBeNull(); result.Count.Should().Be(4); result.Single(x => x.JobType == JobType.EsfSubmission && x.JobId == 1 && x.FileName == "esf.csv").Should().NotBeNull(); result.Single(x => x.JobType == JobType.EasSubmission && x.JobId == 2 && x.FileName == "eas.csv").Should().NotBeNull(); result.Single(x => x.JobType == JobType.IlrSubmission && x.JobId == 3 && x.FileName == "ilr1819.xml" && x.CollectionYear == 1819).Should().NotBeNull(); result.Single(x => x.JobType == JobType.IlrSubmission && x.JobId == 4 && x.FileName == "ilr1718.xml" && x.CollectionYear == 1718).Should().NotBeNull(); }