public DataQualityReport GetDataQualityReport(OCM.API.Common.Model.ChargePoint poi) { DataQualityReport report = new DataQualityReport(); report.POIReports.Add(CheckPOIDataQuality(poi)); return(report); }
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); }
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); }
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"); }