Skip to content

Commit a080b7e

Browse files
Merge pull request #888 from bcgov/feature/registration-validation
Upload Stats
2 parents 5579ff9 + a3a5bad commit a080b7e

File tree

4 files changed

+45
-20
lines changed

4 files changed

+45
-20
lines changed

server/StrDss.Service/BizLicenceService.cs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ public async Task ProcessBizLicenceUploadMainAsync(DssUploadDelivery upload)
8585

8686
private async Task ProcessBizLicenceUploadSubAsync(DssUploadDelivery upload)
8787
{
88-
var count = 0;
89-
88+
var processedCount = 0;
89+
var errorCount = 0;
9090
var header = upload.SourceHeaderTxt ?? "";
9191

9292
var linesToProcess = await _uploadRepo.GetUploadLinesToProcessAsync(upload.UploadDeliveryId);
@@ -95,8 +95,6 @@ private async Task ProcessBizLicenceUploadSubAsync(DssUploadDelivery upload)
9595
foreach (var lineToProcess in linesToProcess)
9696
{
9797
var uploadLine = await _uploadRepo.GetUploadLineAsync(upload.UploadDeliveryId, lineToProcess.OrgCd, lineToProcess.SourceRecordNo);
98-
99-
count++;
10098
var errors = new Dictionary<string, List<string>>();
10199
var csvConfig = CsvHelperUtils.GetConfig(errors, false);
102100

@@ -105,7 +103,19 @@ private async Task ProcessBizLicenceUploadSubAsync(DssUploadDelivery upload)
105103
var csvReader = new CsvReader(textReader, csvConfig);
106104

107105
var (orgCd, sourceRecordNo) = await ProcessLine(upload, header, uploadLine, csvReader);
108-
}
106+
processedCount++;
107+
if (uploadLine.IsValidationFailure == true || uploadLine.IsSystemFailure == true) errorCount++;
108+
}
109+
110+
upload.UploadStatus = errorCount > 0 ? UploadStatus.Failed : UploadStatus.Processed;
111+
upload.RegistrationStatus = UploadStatus.Processed;
112+
upload.UploadLinesTotal = lineCount;
113+
upload.UploadLinesProcessed = processedCount;
114+
upload.UploadLinesSuccess = processedCount - errorCount;
115+
upload.UploadLinesError = errorCount;
116+
upload.RegistrationLinesSuccess = 0;
117+
upload.RegistrationLinesError = 0;
118+
_unitOfWork.Commit();
109119
}
110120

111121
private async Task<(string orgCd, string sourceRecordNo)> ProcessLine(DssUploadDelivery upload, string header, DssUploadLine line, CsvReader csvReader)

server/StrDss.Service/HttpClients/ServiceCollectionExtension.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System.Net.Http.Headers;
1+
using System.Net.Http.Headers;
22
using System.Text;
33
using Microsoft.Extensions.Configuration;
44
using Microsoft.Extensions.DependencyInjection;

server/StrDss.Service/RentalListingReportService.cs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public async Task ProcessRentalReportUploadAsync(DssUploadDelivery upload)
104104

105105
while (csv.Read())
106106
{
107-
//if (processedCount >= linesPerJob) break; //To process x lines per job
107+
if (processedCount >= 500) break; //To process x lines per job
108108

109109
count++;
110110
isLastLine = count == lineCount;
@@ -136,24 +136,29 @@ public async Task ProcessRentalReportUploadAsync(DssUploadDelivery upload)
136136
_logger.LogInformation($"Finishing listing ({row.OrgCd} - {row.ListingId}): {stopwatch.Elapsed.TotalMilliseconds} milliseconds - {processedCount}/{lineCount}");
137137
}
138138

139+
// Because we may be processing these uploads in blocks of 500, we need to do some running totals and update the upload record with the stats we need.
140+
var totalProcessed = upload.UploadLinesProcessed + processedCount;
141+
var totalRegErrors = upload.RegistrationLinesError + regErrorCount;
142+
var totalErrors = upload.UploadLinesError + errorCount;
143+
144+
// Update the delivery record with the stats we need.
145+
upload.UploadStatus = totalProcessed == lineCount ? UploadStatus.Processed : UploadStatus.Pending; // Current logic has only processed or pending for this upload
146+
upload.RegistrationStatus = totalProcessed == lineCount ? totalRegErrors > 0 ? UploadStatus.Failed : UploadStatus.Processed : UploadStatus.Pending;
147+
upload.UploadLinesTotal = lineCount;
148+
upload.UploadLinesProcessed = totalProcessed;
149+
upload.UploadLinesSuccess = totalProcessed - totalErrors;
150+
upload.UploadLinesError = totalErrors;
151+
upload.RegistrationLinesSuccess = totalProcessed - totalRegErrors;
152+
upload.RegistrationLinesError = regErrorCount;
153+
_unitOfWork.Commit();
154+
139155
if (!isLastLine)
140156
{
141157
processStopwatch.Stop();
142158
_logger.LogInformation($"Processed {processedCount} lines: {report.ReportPeriodYm.ToString("yyyy-MM")}, {report.ProvidingOrganization.OrganizationNm} - {processStopwatch.Elapsed.TotalSeconds} seconds");
143159
return;
144160
}
145161

146-
// Update the delivery record with the stats we need.
147-
upload.UploadStatus = errorCount > 0 ? UploadStatus.Failed : UploadStatus.Processed;
148-
upload.RegistrationStatus = regErrorCount > 0 ? UploadStatus.Failed : UploadStatus.Processed;
149-
upload.UploadLinesTotal = lineCount;
150-
upload.UploadLinesProcessed = processedCount;
151-
upload.UploadLinesSuccess = processedCount - errorCount;
152-
upload.UploadLinesError = errorCount;
153-
upload.RegistrationLinesSuccess = processedCount - regErrorCount;
154-
upload.RegistrationLinesError = regErrorCount;
155-
_unitOfWork.Commit();
156-
157162
if (errorCount > 0)
158163
{
159164
if (upload.UpdUserGuid == null) return;

server/StrDss.Service/TakedownConfirmationService.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public async Task ProcessTakedownConfirmationUploadAsync(DssUploadDelivery uploa
5151

5252
_logger.LogInformation($"Processing Takedown Confirmation ({upload.UploadDeliveryId}) {upload.ProvidingOrganization.OrganizationNm} - {upload.ReportPeriodYm}");
5353

54-
var count = 0;
54+
var processedCount = 0;
5555

5656
var header = upload.SourceHeaderTxt ?? "";
5757

@@ -60,7 +60,6 @@ public async Task ProcessTakedownConfirmationUploadAsync(DssUploadDelivery uploa
6060

6161
foreach (var line in linesToProcess)
6262
{
63-
count++;
6463
var errors = new Dictionary<string, List<string>>();
6564
var csvConfig = CsvHelperUtils.GetConfig(errors, false);
6665

@@ -69,8 +68,19 @@ public async Task ProcessTakedownConfirmationUploadAsync(DssUploadDelivery uploa
6968
var csvReader = new CsvReader(textReader, csvConfig);
7069

7170
var (orgCd, listingId) = await ProcessLine(upload, header, line, csvReader);
71+
processedCount++;
7272
}
7373

74+
upload.UploadStatus = UploadStatus.Processed;
75+
upload.RegistrationStatus = UploadStatus.Processed;
76+
upload.UploadLinesTotal = lineCount;
77+
upload.UploadLinesProcessed = processedCount;
78+
upload.UploadLinesSuccess = processedCount;
79+
upload.UploadLinesError = 0;
80+
upload.RegistrationLinesSuccess = 0;
81+
upload.RegistrationLinesError = 0;
82+
_unitOfWork.Commit();
83+
7484
processStopwatch.Stop();
7585

7686
_logger.LogInformation($"Finished Takedown Confirmation: {upload.ReportPeriodYm?.ToString("yyyy-MM")}, {upload.ProvidingOrganization.OrganizationNm} - {processStopwatch.Elapsed.TotalSeconds} seconds");

0 commit comments

Comments
 (0)