Skip to content
This repository was archived by the owner on Jul 28, 2025. It is now read-only.

Commit 84f71aa

Browse files
authored
fix: Resolve SonarQube warnings (#36)
1 parent 8598144 commit 84f71aa

File tree

11 files changed

+31
-56
lines changed

11 files changed

+31
-56
lines changed

src/ServiceLayer.Mesh/FileTypes/NbssAppointmentEvents/Validation/IRecordValidator.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace ServiceLayer.Mesh.FileTypes.NbssAppointmentEvents.Validation;
44

5-
// TODO - create a whole bunch of implementations of this to perform the validation against NBSS Appointment events records
65
public interface IRecordValidator
76
{
87
IEnumerable<ValidationError> Validate(FileDataRecord fileDataRecord);

src/ServiceLayer.Mesh/Functions/FileRetryFunction.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,14 @@ private async Task RetryStaleExtractions(DateTime staleDateTimeUtc)
3434
&& f.LastUpdatedUtc <= staleDateTimeUtc)
3535
.ToListAsync();
3636

37-
logger.LogInformation($"FileRetryFunction: {staleFiles.Count} stale files found for extraction retry");
37+
logger.LogInformation("FileRetryFunction: {StaleFilesCount} stale files found for extraction retry", staleFiles.Count);
3838

3939
foreach (var file in staleFiles)
4040
{
4141
await fileExtractQueueClient.EnqueueFileExtractAsync(file);
4242
file.LastUpdatedUtc = DateTime.UtcNow;
4343
await serviceLayerDbContext.SaveChangesAsync();
44-
logger.LogInformation($"FileRetryFunction: File {file.FileId} enqueued to Extract queue");
44+
logger.LogInformation("FileRetryFunction: File {FileFileId} enqueued to Extract queue", file.FileId);
4545
}
4646
}
4747

@@ -53,14 +53,14 @@ private async Task RetryStaleTransformations(DateTime staleDateTimeUtc)
5353
&& f.LastUpdatedUtc <= staleDateTimeUtc)
5454
.ToListAsync();
5555

56-
logger.LogInformation($"FileRetryFunction: {staleFiles.Count} stale files found for transforming retry");
56+
logger.LogInformation("FileRetryFunction: {StaleFilesCount} stale files found for transforming retry", staleFiles.Count);
5757

5858
foreach (var file in staleFiles)
5959
{
6060
await fileTransformQueueClient.EnqueueFileTransformAsync(file);
6161
file.LastUpdatedUtc = DateTime.UtcNow;
6262
await serviceLayerDbContext.SaveChangesAsync();
63-
logger.LogInformation($"FileRetryFunction: File {file.FileId} enqueued to Transform queue");
63+
logger.LogInformation("FileRetryFunction: File {FileFileId} enqueued to Transform queue", file.FileId);
6464
}
6565
}
6666
}

src/ServiceLayer.Mesh/Messaging/FileExtractQueueClient.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
using Azure.Storage.Queues;
2-
using Microsoft.Extensions.Logging;
32
using ServiceLayer.Data.Models;
43
using ServiceLayer.Mesh.Configuration;
54

65
namespace ServiceLayer.Mesh.Messaging;
76

87
public class FileExtractQueueClient(
9-
ILogger<FileExtractQueueClient> logger,
108
IFileExtractQueueClientConfiguration configuration,
119
QueueServiceClient queueServiceClient)
12-
: QueueClientBase(logger, queueServiceClient), IFileExtractQueueClient
10+
: QueueClientBase(queueServiceClient), IFileExtractQueueClient
1311
{
1412
public async Task EnqueueFileExtractAsync(MeshFile file)
1513
{

src/ServiceLayer.Mesh/Messaging/FileTransformQueueClient.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
using Azure.Storage.Queues;
2-
using Microsoft.Extensions.Logging;
32
using ServiceLayer.Data.Models;
43
using ServiceLayer.Mesh.Configuration;
54

65
namespace ServiceLayer.Mesh.Messaging;
76

87
public class FileTransformQueueClient(
9-
ILogger<FileTransformQueueClient> logger,
108
IFileTransformQueueClientConfiguration configuration,
119
QueueServiceClient queueServiceClient)
12-
: QueueClientBase(logger, queueServiceClient), IFileTransformQueueClient
10+
: QueueClientBase(queueServiceClient), IFileTransformQueueClient
1311
{
1412
public async Task EnqueueFileTransformAsync(MeshFile file)
1513
{

src/ServiceLayer.Mesh/Messaging/QueueClientBase.cs

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
using System.Text.Json;
22
using Azure.Storage.Queues;
3-
using Microsoft.Extensions.Logging;
43

54
namespace ServiceLayer.Mesh.Messaging;
65

7-
public abstract class QueueClientBase(ILogger logger, QueueServiceClient queueServiceClient)
6+
public abstract class QueueClientBase(QueueServiceClient queueServiceClient)
87
{
98
private QueueClient? _queueClient;
109
private QueueClient? _poisonQueueClient;
@@ -37,30 +36,13 @@ private QueueClient CreatePoisonClient()
3736

3837
protected async Task SendJsonMessageAsync<T>(T message)
3938
{
40-
try
41-
{
42-
var json = JsonSerializer.Serialize(message, QueueJsonOptions);
43-
await Client.SendMessageAsync(json);
44-
}
45-
catch (Exception e)
46-
{
47-
// TODO - consider including file ID or correlation ID in error logs
48-
logger.LogError(e, "Error sending message to queue {QueueName}", QueueName);
49-
throw;
50-
}
39+
var json = JsonSerializer.Serialize(message, QueueJsonOptions);
40+
await Client.SendMessageAsync(json);
5141
}
5242

5343
protected async Task SendToPoisonQueueAsync<T>(T message)
5444
{
55-
try
56-
{
57-
var json = JsonSerializer.Serialize(message, QueueJsonOptions);
58-
await PoisonClient.SendMessageAsync(json);
59-
}
60-
catch (Exception e)
61-
{
62-
logger.LogError(e, "Error sending message to poison queue {PoisonQueueName}", $"{QueueName}-poison");
63-
throw;
64-
}
45+
var json = JsonSerializer.Serialize(message, QueueJsonOptions);
46+
await PoisonClient.SendMessageAsync(json);
6547
}
6648
}

src/ServiceLayer.Mesh/Program.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,6 @@
2626
services.AddNbssAppointmentEventServices();
2727
});
2828

29-
30-
// Application Insights isn't enabled by default. See https://aka.ms/AAt8mw4.
31-
// builder.Services
32-
// .AddApplicationInsightsTelemetryWorkerService()
33-
// .ConfigureFunctionsApplicationInsights();
34-
3529
var app = host.Build();
3630
await app.RunAsync();
3731
return;

src/ServiceLayer.Mesh/Storage/IMeshFilesBlobStore.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ namespace ServiceLayer.Mesh.Storage;
44

55
public interface IMeshFilesBlobStore
66
{
7-
// TODO - return a Stream or a byte array?
87
public Task<Stream> DownloadAsync(MeshFile file);
98

10-
// Mesh client gives us a byte array, hence this not taking a stream.
9+
// Mesh client gives us a byte array, hence this is not taking a stream.
1110
public Task<string> UploadAsync(MeshFile file, byte[] data);
1211
}

src/ServiceLayer.Mesh/Storage/MeshFilesBlobStore.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace ServiceLayer.Mesh.Storage;
55

66
public class MeshFilesBlobStore : IMeshFilesBlobStore
77
{
8-
private BlobContainerClient _blobContainerClient;
8+
private readonly BlobContainerClient _blobContainerClient;
99

1010
public MeshFilesBlobStore(BlobContainerClient blobContainerClient)
1111
{

tests/ServiceLayer.Mesh.Tests/FileTypes/NbssAppointmentEvents/Validation/RegexValidatorTests.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44

55
namespace ServiceLayer.Mesh.Tests.FileTypes.NbssAppointmentEvents.Validation;
66

7-
public class RegexValidatorTests
7+
public partial class RegexValidatorTests
88
{
99
private const string FieldName = "TestField";
1010
private const string MissingCode = "ERR001";
1111
private const string InvalidFormatCode = "ERR002";
12-
private readonly Regex _pattern = new(@"^[A-Z]{2}\d{2}$", RegexOptions.Compiled);
12+
private readonly Regex _pattern = TestRegex();
1313

1414
[Fact]
1515
public void Validate_NullValue_ShouldReturnMissingError()
@@ -68,4 +68,7 @@ public void Validate_ValueMatchingPattern_ShouldReturnNoErrors(string validValue
6868

6969
Assert.Empty(errors);
7070
}
71+
72+
[GeneratedRegex(@"^[A-Z]{2}\d{2}$", RegexOptions.Compiled)]
73+
private static partial Regex TestRegex();
7174
}

tests/ServiceLayer.Mesh.Tests/Functions/FileDiscoveryFunctionTests.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Moq;
1+
using Microsoft.Azure.Functions.Worker;
2+
using Moq;
23
using NHS.MESH.Client.Contracts.Services;
34
using NHS.MESH.Client.Models;
45
using ServiceLayer.Data.Models;
@@ -44,7 +45,7 @@ public async Task Run_AddsNewMessageToDbAndQueue()
4445
});
4546

4647
// Act
47-
await _function.Run(null);
48+
await _function.Run(new TimerInfo());
4849

4950
// Assert
5051
var meshFile = AssertFileUpdated(testMessageId, MeshFileStatus.Discovered);
@@ -67,7 +68,7 @@ public async Task Run_DoesNotAddDuplicateMessageOrQueueIt()
6768
});
6869

6970
// Act
70-
await _function.Run(null);
71+
await _function.Run(new TimerInfo());
7172

7273
// Assert
7374
var count = DbContext.MeshFiles.Count(f => f.FileId == existingFile.FileId);
@@ -87,7 +88,7 @@ public async Task Run_NoMessagesInInbox_DoesNothing()
8788
});
8889

8990
// Act
90-
await _function.Run(null);
91+
await _function.Run(new TimerInfo());
9192

9293
// Assert
9394
Assert.Empty(DbContext.MeshFiles);
@@ -107,7 +108,7 @@ public async Task Run_MultipleMessagesInInbox_AllAreProcessed()
107108
});
108109

109110
// Act
110-
await _function.Run(null);
111+
await _function.Run(new TimerInfo());
111112

112113
// Assert
113114
foreach (var id in messageIds)

0 commit comments

Comments
 (0)