Exemple #1
0
        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));
        }
Exemple #2
0
        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();
        }