Skip to content

Commit e9cdb30

Browse files
Refactor CreateFile to use CreateFileRequest record
Refactored FileAggregate.CreateFile to accept a CreateFileRequest record instead of multiple parameters. Updated all usages, including tests and helpers, to use the new request object for improved readability and maintainability.
1 parent e9ed9ae commit e9cdb30

4 files changed

Lines changed: 52 additions & 48 deletions

File tree

FileProcessor.BusinessLogic/Services/FileProcessorDomainService.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,8 @@ public async Task<Result> ProcessUploadedFile(FileCommands.ProcessUploadedFileCo
249249
return ResultHelpers.CreateFailure(operatorIdResult);
250250

251251
Logger.LogWarning("About to Create File");
252-
Result stateResult = fileAggregate.CreateFile(command.FileImportLogId, command.EstateId, command.MerchantId, command.UserId, command.FileProfileId, command.FilePath, command.FileUploadedDateTime, operatorIdResult.Data);
252+
FileAggregateExtensions.CreateFileRequest request = new(command.FileImportLogId, command.EstateId, command.MerchantId, command.UserId, command.FileProfileId, command.FilePath, command.FileUploadedDateTime, operatorIdResult.Data);
253+
Result stateResult = fileAggregate.CreateFile(request);
253254
if (stateResult.IsFailed)
254255
return stateResult;
255256

FileProcessor.FileAggregate.Tests/FileAggregateTests.cs

Lines changed: 35 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ public void FileAggregate_CanBeCreated_InvalidFileId_IsCreated()
3535
public void FileAggregate_CreateFile_FileIsCreated()
3636
{
3737
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
38-
var result = fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
39-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
38+
FileAggregateExtensions.CreateFileRequest request = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
39+
var result = fileAggregate.CreateFile(request);
4040
result.IsSuccess.ShouldBeTrue();
4141

4242
fileAggregate.IsCreated.ShouldBeTrue();
@@ -58,25 +58,19 @@ public void FileAggregate_CreateFile_FileIsCreated()
5858
public void FileAggregate_CreateFile_FileAlreadyCreated_NoErrorThrown()
5959
{
6060
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
61-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
62-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
63-
64-
var result = fileAggregate.CreateFile(TestData.FileImportLogId,
65-
TestData.EstateId,
66-
TestData.MerchantId,
67-
TestData.UserId,
68-
TestData.FileProfileId,
69-
TestData.FileLocation,
70-
TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
71-
result.IsSuccess.ShouldBeTrue();
61+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
62+
fileAggregate.CreateFile(createFileRequest);
63+
64+
var result = fileAggregate.CreateFile(createFileRequest);
65+
result.IsSuccess.ShouldBeTrue();
7266
}
7367

7468
[Fact]
7569
public void FileAggregate_AddFileLine_FileLineAdded()
7670
{
7771
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
78-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
79-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
72+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
73+
fileAggregate.CreateFile(createFileRequest);
8074
var result = fileAggregate.AddFileLine(TestData.FileLine);
8175
result.IsSuccess.ShouldBeTrue();
8276

@@ -98,8 +92,8 @@ public void FileAggregate_AddFileLine_FileLineAdded()
9892
public void FileAggregate_AddFileLine_AddDuplicateLine_FileLineIsNotAddedAdded()
9993
{
10094
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
101-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
102-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
95+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
96+
fileAggregate.CreateFile(createFileRequest);
10397
fileAggregate.AddFileLine(TestData.FileLine);
10498
var result = fileAggregate.AddFileLine(TestData.FileLine);
10599
result.IsSuccess.ShouldBeTrue();
@@ -124,8 +118,8 @@ public void FileAggregate_AddFileLine_FileNotCreated_FileLineAdded() {
124118
public void FileAggregate_RecordFileLineAsSuccessful_FileLineUpdatedAsSuccessful()
125119
{
126120
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
127-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
128-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
121+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
122+
fileAggregate.CreateFile(createFileRequest);
129123
fileAggregate.AddFileLine(TestData.FileLine);
130124
var result = fileAggregate.RecordFileLineAsSuccessful(TestData.LineNumber, TestData.TransactionId);
131125
result.IsSuccess.ShouldBeTrue();
@@ -161,8 +155,8 @@ public void FileAggregate_RecordFileLineAsSuccessful_FileNotCreated_ErrorThrown(
161155
public void FileAggregate_RecordFileLineAsSuccessful_FileHasNoLine_ErrorThrown()
162156
{
163157
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
164-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
165-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
158+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
159+
fileAggregate.CreateFile(createFileRequest);
166160

167161
var result = fileAggregate.RecordFileLineAsSuccessful(TestData.LineNumber, TestData.TransactionId);
168162
result.IsFailed.ShouldBeTrue();
@@ -173,8 +167,8 @@ public void FileAggregate_RecordFileLineAsSuccessful_FileHasNoLine_ErrorThrown()
173167
public void FileAggregate_RecordFileLineAsSuccessful_LineNotFound_ErrorThrown()
174168
{
175169
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
176-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
177-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
170+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
171+
fileAggregate.CreateFile(createFileRequest);
178172
fileAggregate.AddFileLine(TestData.FileLine);
179173
var result = fileAggregate.RecordFileLineAsSuccessful(TestData.NotFoundLineNumber, TestData.TransactionId);
180174
result.IsFailed.ShouldBeTrue();
@@ -185,8 +179,8 @@ public void FileAggregate_RecordFileLineAsSuccessful_LineNotFound_ErrorThrown()
185179
public void FileAggregate_RecordFileLineAsFailed_FileLineUpdatedAsFailed()
186180
{
187181
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
188-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
189-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
182+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
183+
fileAggregate.CreateFile(createFileRequest);
190184
fileAggregate.AddFileLine(TestData.FileLine);
191185
var result = fileAggregate.RecordFileLineAsFailed(TestData.LineNumber, TestData.TransactionId,TestData.ResponseCodeFailed, TestData.ResponseMessageFailed);
192186
result.IsSuccess.ShouldBeTrue();
@@ -223,8 +217,8 @@ public void FileAggregate_RecordFileLineAsFailed_FileNotCreated_ErrorThrown()
223217
public void FileAggregate_RecordFileLineAsFailed_FileHasNoLines_ErrorThrown()
224218
{
225219
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
226-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
227-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
220+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
221+
fileAggregate.CreateFile(createFileRequest);
228222

229223
var result = fileAggregate.RecordFileLineAsFailed(TestData.LineNumber, TestData.TransactionId, TestData.ResponseCodeFailed, TestData.ResponseMessageFailed);
230224
result.IsFailed.ShouldBeTrue();
@@ -235,8 +229,8 @@ public void FileAggregate_RecordFileLineAsFailed_FileHasNoLines_ErrorThrown()
235229
public void FileAggregate_RecordFileLineAsFailed_LineNotFound_ErrorThrown()
236230
{
237231
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
238-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
239-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
232+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
233+
fileAggregate.CreateFile(createFileRequest);
240234
fileAggregate.AddFileLine(TestData.FileLine);
241235
var result = fileAggregate.RecordFileLineAsFailed(TestData.NotFoundLineNumber, TestData.TransactionId, TestData.ResponseCodeFailed, TestData.ResponseMessageFailed);
242236

@@ -248,8 +242,8 @@ public void FileAggregate_RecordFileLineAsFailed_LineNotFound_ErrorThrown()
248242
public void FileAggregate_RecordFileLineAsIgnored_FileLineUpdatedAsIgnored()
249243
{
250244
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
251-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
252-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
245+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
246+
fileAggregate.CreateFile(createFileRequest);
253247
fileAggregate.AddFileLine(TestData.FileLine);
254248
var result = fileAggregate.RecordFileLineAsIgnored(TestData.LineNumber);
255249
result.IsSuccess.ShouldBeTrue();
@@ -285,8 +279,8 @@ public void FileAggregate_RecordFileLineAsIgnored_FileNotCreated_ErrorThrown()
285279
public void FileAggregate_FileAggregate_RecordFileLineAsIgnored_FileHasNoLine_ErrorThrown()
286280
{
287281
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
288-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
289-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
282+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
283+
fileAggregate.CreateFile(createFileRequest);
290284

291285
var result = fileAggregate.RecordFileLineAsIgnored(TestData.LineNumber);
292286

@@ -298,8 +292,8 @@ public void FileAggregate_FileAggregate_RecordFileLineAsIgnored_FileHasNoLine_Er
298292
public void FileAggregate_RecordFileLineAsIgnored_LineNotFound_ErrorThrown()
299293
{
300294
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
301-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
302-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
295+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
296+
fileAggregate.CreateFile(createFileRequest);
303297
fileAggregate.AddFileLine(TestData.FileLine);
304298
var result = fileAggregate.RecordFileLineAsIgnored(TestData.NotFoundLineNumber);
305299

@@ -313,8 +307,8 @@ public void FileAggregate_RecordFileLineAsIgnored_LineNotFound_ErrorThrown()
313307
public void FileAggregate_RecordFileLineAsRejected_FileLineUpdatedAsRejected()
314308
{
315309
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
316-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
317-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
310+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
311+
fileAggregate.CreateFile(createFileRequest);
318312
fileAggregate.AddFileLine(TestData.FileLine);
319313
var result = fileAggregate.RecordFileLineAsRejected(TestData.LineNumber, TestData.RejectionReason);
320314
result.IsSuccess.ShouldBeTrue();
@@ -352,8 +346,8 @@ public void FileAggregate_RecordFileLineAsRejected_FileNotCreated_ErrorThrown()
352346
public void FileAggregate_RecordFileLineAsRejected_FileHasNoLine_ErrorThrown()
353347
{
354348
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
355-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
356-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
349+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
350+
fileAggregate.CreateFile(createFileRequest);
357351

358352
var result = fileAggregate.RecordFileLineAsRejected(TestData.LineNumber,TestData.RejectionReason);
359353

@@ -365,8 +359,8 @@ public void FileAggregate_RecordFileLineAsRejected_FileHasNoLine_ErrorThrown()
365359
public void FileAggregate_RecordFileLineAsRejected_LineNotFound_ErrorThrown()
366360
{
367361
FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId);
368-
fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId,
369-
TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
362+
FileAggregateExtensions.CreateFileRequest createFileRequest = new(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime, TestData.SafaricomOperatorId);
363+
fileAggregate.CreateFile(createFileRequest);
370364
fileAggregate.AddFileLine(TestData.FileLine);
371365
var result = fileAggregate.RecordFileLineAsRejected(TestData.NotFoundLineNumber, TestData.RejectionReason);
372366

FileProcessor.FileAggregate/FileAggregate.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,14 @@ public static void PlayEvent(this FileAggregate aggregate, FileProcessingComplet
9999
aggregate.IsCompleted = true;
100100
}
101101

102-
public static Result CreateFile(this FileAggregate aggregate, Guid fileImportLogId, Guid estateId, Guid merchantId, Guid userId, Guid fileProfileId, String fileLocation, DateTime fileReceivedDateTime, Guid operatorId)
102+
public record CreateFileRequest(Guid fileImportLogId, Guid estateId, Guid merchantId, Guid userId, Guid fileProfileId, String fileLocation, DateTime fileReceivedDateTime, Guid operatorId);
103+
104+
public static Result CreateFile(this FileAggregate aggregate, CreateFileRequest createFileRequest)
103105
{
104106
if (aggregate.IsCreated)
105107
return Result.Success();
106108

107-
FileCreatedEvent fileCreatedEvent = new(aggregate.AggregateId, fileImportLogId, estateId, merchantId, userId, fileProfileId, fileLocation, fileReceivedDateTime, operatorId);
109+
FileCreatedEvent fileCreatedEvent = new(aggregate.AggregateId, createFileRequest.fileImportLogId, createFileRequest.estateId, createFileRequest.merchantId, createFileRequest.userId, createFileRequest.fileProfileId, createFileRequest.fileLocation, createFileRequest.fileReceivedDateTime, createFileRequest.operatorId);
108110

109111
aggregate.ApplyAndAppend(fileCreatedEvent);
110112

0 commit comments

Comments
 (0)