コード例 #1
0
        public DataQualityReport GetDataQualityReport(OCM.API.Common.Model.ChargePoint poi)
        {
            DataQualityReport report = new DataQualityReport();

            report.POIReports.Add(CheckPOIDataQuality(poi));
            return(report);
        }
コード例 #2
0
        public DataQualityReport GetDataQualityReport(List <OCM.API.Common.Model.ChargePoint> poiList)
        {
            DataQualityReport report = new DataQualityReport();

            foreach (var poi in poiList)
            {
                var poiReport = CheckPOIDataQuality(poi);
                report.POIReports.Add(poiReport);
            }

            return(report);
        }
コード例 #3
0
ファイル: OprContext.cs プロジェクト: DDN-Shep/OPR
        public Opr CreateReport(DataQualityReport dqr, TotalInsuredReport tir, SubscribeDataEntryReport sder, CommentHistory ch, string createdBy)
        {
            var now    = DateTime.Now;
            var report = new Opr
            {
                DataQualityReport        = dqr ?? new DataQualityReport(),
                TotalInsuredReport       = tir ?? new TotalInsuredReport(),
                SubscribeDataEntryReport = sder ?? new SubscribeDataEntryReport(),
                CommentHistory           = ch ?? new CommentHistory(),
                CreatedBy  = createdBy,
                ModifiedBy = createdBy,
                CreatedOn  = now,
                ModifiedOn = now
            };

            Opr.Add(report);

            SaveChanges();

            return(report);
        }
コード例 #4
0
        public async Task TestDataQualityReportGeneration()
        {
            byte[]   xlsx           = null;
            DateTime dateTime       = DateTime.UtcNow;
            string   reportFileName = "Data Quality Report";
            int      ukPrn          = 10036143;
            int      collectionYear = 1920;
            int      returnPeriod   = 12;
            Mock <IReportServiceContext> reportServiceContextMock = new Mock <IReportServiceContext>();

            reportServiceContextMock.SetupGet(x => x.JobId).Returns(1);
            reportServiceContextMock.SetupGet(x => x.SubmissionDateTimeUtc).Returns(DateTime.UtcNow);
            reportServiceContextMock.SetupGet(x => x.Ukprn).Returns(ukPrn);
            reportServiceContextMock.SetupGet(x => x.CollectionYear).Returns(collectionYear);
            reportServiceContextMock.SetupGet(x => x.ReturnPeriod).Returns(returnPeriod);
            reportServiceContextMock.SetupGet(x => x.ILRPeriods).Returns(BuildReturnPeriodsModel());

            var filename = $"R{returnPeriod.ToString().PadLeft(2, '0')}_{reportFileName} R{returnPeriod.ToString().PadLeft(2, '0')} {dateTime:yyyyMMdd-HHmmss}";

            Mock <ILogger>                               logger = new Mock <ILogger>();
            Mock <IDateTimeProvider>                     dateTimeProviderMock            = new Mock <IDateTimeProvider>();
            Mock <IOrgProviderService>                   orgProviderMock                 = new Mock <IOrgProviderService>();
            Mock <IIlrPeriodEndProviderService>          ilrPeriodEndProviderServiceMock = new Mock <IIlrPeriodEndProviderService>();
            Mock <IStreamableKeyValuePersistenceService> storage = new Mock <IStreamableKeyValuePersistenceService>();
            Mock <IJobQueueManagerProviderService>       jobQueueManagerProviderServiceMock = new Mock <IJobQueueManagerProviderService>();
            IValueProvider                               valueProvider = new ValueProvider();

            storage.Setup(x => x.SaveAsync($"{filename}.xlsx", It.IsAny <Stream>(), It.IsAny <CancellationToken>()))
            .Callback <string, Stream, CancellationToken>(
                (key, value, ct) =>
            {
                value.Seek(0, SeekOrigin.Begin);
                using (MemoryStream ms = new MemoryStream())
                {
                    value.CopyTo(ms);
                    xlsx = ms.ToArray();
                }
            })
            .Returns(Task.CompletedTask);

            var orgInfo     = BuildOrgModel(ukPrn);
            var fileDetails = BuildFileDetailsModel();
            var dataQualityReturningInfo    = BuilDataQualityReturningModel();
            var top20RuleViolations         = BuildTop20RuleViolationModel();
            var providerWithoutValidLearner = BuildProviderWithoutValidLearnerModel(ukPrn);
            var providerWithInValidLearner  = BuildProviderWithInvalidLearnerModel(ukPrn);

            orgProviderMock.Setup(x => x.GetOrgDetailsForUKPRNsAsync(It.IsAny <List <long> >(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(orgInfo);
            jobQueueManagerProviderServiceMock
            .Setup(x => x.GetCollectionIdAsync(It.IsAny <string>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(8);
            jobQueueManagerProviderServiceMock.Setup(x => x.GetFilePeriodInfoForCollection(It.IsAny <int>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(fileDetails);
            ilrPeriodEndProviderServiceMock.Setup(x => x.GetReturningProvidersAsync(It.IsAny <int>(), It.IsAny <List <ReturnPeriod> >(), It.IsAny <List <FilePeriodInfo> >(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(dataQualityReturningInfo);
            ilrPeriodEndProviderServiceMock.Setup(x => x.GetTop20RuleViolationsAsync(It.IsAny <CancellationToken>()))
            .ReturnsAsync(top20RuleViolations);
            ilrPeriodEndProviderServiceMock.Setup(x => x.GetProvidersWithoutValidLearners(It.IsAny <List <FilePeriodInfo> >(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(providerWithoutValidLearner);
            ilrPeriodEndProviderServiceMock.Setup(x => x.GetProvidersWithInvalidLearners(It.IsAny <int>(), It.IsAny <List <ReturnPeriod> >(), It.IsAny <List <FilePeriodInfo> >(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(providerWithInValidLearner);

            dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(dateTime);
            dateTimeProviderMock.Setup(x => x.ConvertUtcToUk(It.IsAny <DateTime>())).Returns(dateTime);

            var report = new DataQualityReport(
                logger: logger.Object,
                dateTimeProvider: dateTimeProviderMock.Object,
                orgProviderService: orgProviderMock.Object,
                ilrPeriodEndProviderService: ilrPeriodEndProviderServiceMock.Object,
                jobQueueManagerProviderService: jobQueueManagerProviderServiceMock.Object,
                streamableKeyValuePersistenceService: storage.Object,
                valueProvider: valueProvider);

            await report.GenerateReport(reportServiceContextMock.Object, CancellationToken.None);

            xlsx.Should().NotBeNullOrEmpty();
#if DEBUG
            File.WriteAllBytes($"C://Temp//{filename}.xlsx", xlsx);
#endif
            Stream   stream = new MemoryStream(xlsx);
            Workbook wb     = new Workbook(stream);
            wb.Should().NotBeNull();
            wb.Worksheets.Count().Should().BeGreaterThan(0);
            wb.Worksheets[0].Name.Should().Be("Data Quality");
        }