diff --git a/src/Paramore.Brighter.DynamoDb/DynamoDbTableBuilder.cs b/src/Paramore.Brighter.DynamoDb/DynamoDbTableBuilder.cs index 4f93ba2162..6f049b194c 100644 --- a/src/Paramore.Brighter.DynamoDb/DynamoDbTableBuilder.cs +++ b/src/Paramore.Brighter.DynamoDb/DynamoDbTableBuilder.cs @@ -114,7 +114,7 @@ public async Task EnsureTablesReady(IEnumerable tableNames, TableStatus return tableCheck.Any(kv => kv.Value) ? (true, tableCheck.Where(tbl => tbl.Value).Select(tbl => tbl.Key)) : - (false, Enumerable.Empty()); + (false, []); } @@ -197,12 +197,10 @@ private static bool AddKeyUsedFields(CreateTableRequest tableRequest, AttributeD return false; } - private class DynamoDbTableStatus + private sealed class DynamoDbTableStatus { - public string TableName { get; set; } + public string TableName { get; init; } public bool IsReady { get; set; } } - } } - diff --git a/src/Paramore.Brighter.DynamoDb/DynamoDbTableFactory.cs b/src/Paramore.Brighter.DynamoDb/DynamoDbTableFactory.cs index 1f956f54c8..c7b7bb52af 100644 --- a/src/Paramore.Brighter.DynamoDb/DynamoDbTableFactory.cs +++ b/src/Paramore.Brighter.DynamoDb/DynamoDbTableFactory.cs @@ -25,8 +25,6 @@ THE SOFTWARE. */ using System.Collections.ObjectModel; using System.Linq; using System.Reflection; -using System.Threading; -using System.Threading.Tasks; using Amazon.DynamoDBv2; using Amazon.DynamoDBv2.DataModel; using Amazon.DynamoDBv2.Model; @@ -401,7 +399,7 @@ private ScalarAttributeType GetDynamoDbType(Type propertyType, bool hasConverter throw new NotSupportedException($"We can't convert {propertyType.Name} to a DynamoDb type. Avoid marking as an attribute and see if the lib can figure it out"); } - private class GlobalSecondaryIndexDetails + private sealed class GlobalSecondaryIndexDetails { public PropertyInfo Prop { get; set; } public CustomAttributeData Attribute { get; set; } diff --git a/src/Paramore.Brighter.Inbox.DynamoDB/KeyIdContextExpression.cs b/src/Paramore.Brighter.Inbox.DynamoDB/KeyIdContextExpression.cs index b18460207b..b4e80b66dd 100644 --- a/src/Paramore.Brighter.Inbox.DynamoDB/KeyIdContextExpression.cs +++ b/src/Paramore.Brighter.Inbox.DynamoDB/KeyIdContextExpression.cs @@ -1,30 +1,24 @@ -using System; using System.Collections.Generic; using Amazon.DynamoDBv2.DocumentModel; namespace Paramore.Brighter.Inbox.DynamoDB { - internal class KeyIdContextExpression + internal sealed class KeyIdContextExpression { - private Expression _expression; - - public KeyIdContextExpression() + private readonly Expression _expression = new() { - _expression = new Expression(); - _expression.ExpressionStatement = "CommandId = :v_CommandId and ContextKey = :v_ContextKey"; - } + ExpressionStatement = "CommandId = :v_CommandId and ContextKey = :v_ContextKey" + }; public Expression Generate(string id, string contextKey) { - var values = new Dictionary(); - values.Add(":v_CommandId", id); - values.Add(":v_ContextKey", contextKey); - - _expression.ExpressionAttributeValues = values; + _expression.ExpressionAttributeValues = new Dictionary(capacity: 2) + { + { ":v_CommandId", id }, + { ":v_ContextKey", contextKey } + }; return _expression; - } - } } diff --git a/src/Paramore.Brighter.MessagingGateway.AWSSQS/HeaderResult.cs b/src/Paramore.Brighter.MessagingGateway.AWSSQS/HeaderResult.cs index e250934d02..60f4d9215a 100644 --- a/src/Paramore.Brighter.MessagingGateway.AWSSQS/HeaderResult.cs +++ b/src/Paramore.Brighter.MessagingGateway.AWSSQS/HeaderResult.cs @@ -57,7 +57,7 @@ namespace Paramore.Brighter.MessagingGateway.AWSSQS /// Class HeaderResult. /// /// The type of the t result. - internal class HeaderResult + internal sealed class HeaderResult { /// /// Initializes a new instance of the class. diff --git a/src/Paramore.Brighter.MessagingGateway.AWSSQS/SqsInlineMessageCreator.cs b/src/Paramore.Brighter.MessagingGateway.AWSSQS/SqsInlineMessageCreator.cs index d3f7eb7e6c..9b0a7891eb 100644 --- a/src/Paramore.Brighter.MessagingGateway.AWSSQS/SqsInlineMessageCreator.cs +++ b/src/Paramore.Brighter.MessagingGateway.AWSSQS/SqsInlineMessageCreator.cs @@ -33,7 +33,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.MessagingGateway.AWSSQS; -internal class SqsInlineMessageCreator : SqsMessageCreatorBase, ISqsMessageCreator +internal sealed class SqsInlineMessageCreator : SqsMessageCreatorBase, ISqsMessageCreator { private static readonly ILogger s_logger = ApplicationLogging.CreateLogger(); diff --git a/src/Paramore.Brighter.MessagingGateway.AWSSQS/SqsMessageCreator.cs b/src/Paramore.Brighter.MessagingGateway.AWSSQS/SqsMessageCreator.cs index fea74f1a53..b66a25e2ab 100644 --- a/src/Paramore.Brighter.MessagingGateway.AWSSQS/SqsMessageCreator.cs +++ b/src/Paramore.Brighter.MessagingGateway.AWSSQS/SqsMessageCreator.cs @@ -48,7 +48,7 @@ internal enum ARNAmazonSNS SubscriptionId = 6 } -internal class SqsMessageCreator : SqsMessageCreatorBase, ISqsMessageCreator +internal sealed class SqsMessageCreator : SqsMessageCreatorBase, ISqsMessageCreator { private static readonly ILogger s_logger = ApplicationLogging.CreateLogger(); diff --git a/src/Paramore.Brighter.MessagingGateway.AWSSQS/SqsMessageCreatorFactory.cs b/src/Paramore.Brighter.MessagingGateway.AWSSQS/SqsMessageCreatorFactory.cs index c8e0b652e7..a15ad868c5 100644 --- a/src/Paramore.Brighter.MessagingGateway.AWSSQS/SqsMessageCreatorFactory.cs +++ b/src/Paramore.Brighter.MessagingGateway.AWSSQS/SqsMessageCreatorFactory.cs @@ -23,7 +23,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.MessagingGateway.AWSSQS { - internal class SqsMessageCreatorFactory + internal sealed class SqsMessageCreatorFactory { public static ISqsMessageCreator Create(bool rawMessageDelivery) { diff --git a/src/Paramore.Brighter.MessagingGateway.AWSSQS/ValidateTopicByName.cs b/src/Paramore.Brighter.MessagingGateway.AWSSQS/ValidateTopicByName.cs index 766d60f718..4f42b703f7 100644 --- a/src/Paramore.Brighter.MessagingGateway.AWSSQS/ValidateTopicByName.cs +++ b/src/Paramore.Brighter.MessagingGateway.AWSSQS/ValidateTopicByName.cs @@ -33,7 +33,7 @@ namespace Paramore.Brighter.MessagingGateway.AWSSQS /// /// The class is responsible for validating an AWS SNS topic by its name. /// - internal class ValidateTopicByName : IValidateTopic + internal sealed class ValidateTopicByName : IValidateTopic { private readonly AmazonSimpleNotificationServiceClient _snsClient; private readonly SnsSqsType _type; diff --git a/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/BrokeredMessageWrapper.cs b/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/BrokeredMessageWrapper.cs index e6a5020198..ed3e7f1974 100644 --- a/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/BrokeredMessageWrapper.cs +++ b/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/BrokeredMessageWrapper.cs @@ -4,7 +4,7 @@ namespace Paramore.Brighter.MessagingGateway.AzureServiceBus.AzureServiceBusWrappers { - internal class BrokeredMessageWrapper : IBrokeredMessageWrapper + internal sealed class BrokeredMessageWrapper : IBrokeredMessageWrapper { private readonly ServiceBusReceivedMessage _brokeredMessage; diff --git a/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusReceiverProvider.cs b/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusReceiverProvider.cs index 0c2f982faf..50acb7b19c 100644 --- a/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusReceiverProvider.cs +++ b/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusReceiverProvider.cs @@ -27,7 +27,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.MessagingGateway.AzureServiceBus.AzureServiceBusWrappers { - internal class ServiceBusReceiverProvider(IServiceBusClientProvider clientProvider) : IServiceBusReceiverProvider + internal sealed class ServiceBusReceiverProvider(IServiceBusClientProvider clientProvider) : IServiceBusReceiverProvider { private readonly ServiceBusClient _client = clientProvider.GetServiceBusClient(); diff --git a/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusReceiverWrapper.cs b/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusReceiverWrapper.cs index e875099bb7..8d051a0183 100644 --- a/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusReceiverWrapper.cs +++ b/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusReceiverWrapper.cs @@ -34,7 +34,7 @@ namespace Paramore.Brighter.MessagingGateway.AzureServiceBus.AzureServiceBusWrap /// /// Wraps the to provide additional functionality. /// - internal class ServiceBusReceiverWrapper : IServiceBusReceiverWrapper + internal sealed class ServiceBusReceiverWrapper : IServiceBusReceiverWrapper { private readonly ServiceBusReceiver _messageReceiver; private static readonly ILogger s_logger = ApplicationLogging.CreateLogger(); diff --git a/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusSenderProvider.cs b/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusSenderProvider.cs index 97b9bae254..33874c2dec 100644 --- a/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusSenderProvider.cs +++ b/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusSenderProvider.cs @@ -3,7 +3,7 @@ namespace Paramore.Brighter.MessagingGateway.AzureServiceBus.AzureServiceBusWrappers { - internal class ServiceBusSenderProvider : IServiceBusSenderProvider + internal sealed class ServiceBusSenderProvider : IServiceBusSenderProvider { private readonly ServiceBusClient _client; diff --git a/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusSenderWrapper.cs b/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusSenderWrapper.cs index 1c433785bf..341cbab4bc 100644 --- a/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusSenderWrapper.cs +++ b/src/Paramore.Brighter.MessagingGateway.AzureServiceBus/AzureServiceBusWrappers/ServiceBusSenderWrapper.cs @@ -6,7 +6,7 @@ namespace Paramore.Brighter.MessagingGateway.AzureServiceBus.AzureServiceBusWrappers { - internal class ServiceBusSenderWrapper : IServiceBusSenderWrapper + internal sealed class ServiceBusSenderWrapper : IServiceBusSenderWrapper { private readonly ServiceBusSender _serviceBusSender; diff --git a/src/Paramore.Brighter.MessagingGateway.Kafka/HeaderResult.cs b/src/Paramore.Brighter.MessagingGateway.Kafka/HeaderResult.cs index bb7d6725b0..99594d088d 100644 --- a/src/Paramore.Brighter.MessagingGateway.Kafka/HeaderResult.cs +++ b/src/Paramore.Brighter.MessagingGateway.Kafka/HeaderResult.cs @@ -31,7 +31,7 @@ namespace Paramore.Brighter.MessagingGateway.Kafka /// what do we need to know to process a message /// /// The type of the t result. - internal class HeaderResult + internal sealed class HeaderResult { /// /// Initializes a new instance of the class. diff --git a/src/Paramore.Brighter.MessagingGateway.Kafka/KafkaMessagePublisher.cs b/src/Paramore.Brighter.MessagingGateway.Kafka/KafkaMessagePublisher.cs index 2ddae7c6c8..3721eb92be 100644 --- a/src/Paramore.Brighter.MessagingGateway.Kafka/KafkaMessagePublisher.cs +++ b/src/Paramore.Brighter.MessagingGateway.Kafka/KafkaMessagePublisher.cs @@ -29,7 +29,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.MessagingGateway.Kafka { - internal class KafkaMessagePublisher + internal sealed class KafkaMessagePublisher { private readonly IProducer _producer; diff --git a/src/Paramore.Brighter.MessagingGateway.RMQ.Async/HeaderResult.cs b/src/Paramore.Brighter.MessagingGateway.RMQ.Async/HeaderResult.cs index b11a54398d..ab9bfbb7db 100644 --- a/src/Paramore.Brighter.MessagingGateway.RMQ.Async/HeaderResult.cs +++ b/src/Paramore.Brighter.MessagingGateway.RMQ.Async/HeaderResult.cs @@ -30,7 +30,7 @@ namespace Paramore.Brighter.MessagingGateway.RMQ.Async /// Class HeaderResult. /// /// The type of the t result. - internal class HeaderResult + internal sealed class HeaderResult { /// /// Initializes a new instance of the class. diff --git a/src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessageCreator.cs b/src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessageCreator.cs index a7a768d841..27d5a6b290 100644 --- a/src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessageCreator.cs +++ b/src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessageCreator.cs @@ -35,7 +35,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.MessagingGateway.RMQ.Async; -internal class RmqMessageCreator +internal sealed class RmqMessageCreator { private static readonly ILogger s_logger = ApplicationLogging.CreateLogger(); diff --git a/src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessageGatewayConnectionPool.cs b/src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessageGatewayConnectionPool.cs index 00c7b9fc30..c61bb25aac 100644 --- a/src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessageGatewayConnectionPool.cs +++ b/src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessageGatewayConnectionPool.cs @@ -201,5 +201,5 @@ private static string GetConnectionId(ConnectionFactory connectionFactory) $"{connectionFactory.UserName}.{connectionFactory.Password}.{connectionFactory.HostName}.{connectionFactory.Port}.{connectionFactory.VirtualHost}" .ToLowerInvariant(); - private record PooledConnection(IConnection Connection, AsyncEventHandler ShutdownHandler); + private sealed record PooledConnection(IConnection Connection, AsyncEventHandler ShutdownHandler); } diff --git a/src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessagePublisher.cs b/src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessagePublisher.cs index 3350ec5bb2..340f61a7aa 100644 --- a/src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessagePublisher.cs +++ b/src/Paramore.Brighter.MessagingGateway.RMQ.Async/RmqMessagePublisher.cs @@ -39,7 +39,7 @@ namespace Paramore.Brighter.MessagingGateway.RMQ.Async; /// /// Class RmqMessagePublisher. /// -internal class RmqMessagePublisher +internal sealed class RmqMessagePublisher { private static readonly ILogger s_logger = ApplicationLogging.CreateLogger(); diff --git a/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/HeaderResult.cs b/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/HeaderResult.cs index 53e0519122..be97174dd6 100644 --- a/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/HeaderResult.cs +++ b/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/HeaderResult.cs @@ -30,7 +30,7 @@ namespace Paramore.Brighter.MessagingGateway.RMQ.Sync /// Class HeaderResult. /// /// The type of the t result. - internal class HeaderResult + internal sealed class HeaderResult { /// /// Initializes a new instance of the class. diff --git a/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessageCreator.cs b/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessageCreator.cs index b6fb37f867..2c159f932e 100644 --- a/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessageCreator.cs +++ b/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessageCreator.cs @@ -35,7 +35,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.MessagingGateway.RMQ.Sync { - internal class RmqMessageCreator + internal sealed class RmqMessageCreator { private static readonly ILogger s_logger = ApplicationLogging.CreateLogger(); diff --git a/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessageGatewayConnectionPool.cs b/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessageGatewayConnectionPool.cs index 273a6e75eb..96f88c50ff 100644 --- a/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessageGatewayConnectionPool.cs +++ b/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessageGatewayConnectionPool.cs @@ -157,7 +157,7 @@ private static void DelayReconnecting() } - class PooledConnection + sealed class PooledConnection { public IConnection? Connection { get; set; } public EventHandler? ShutdownHandler { get; set; } diff --git a/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessagePublisher.cs b/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessagePublisher.cs index 7c30312e6a..15b25acebb 100644 --- a/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessagePublisher.cs +++ b/src/Paramore.Brighter.MessagingGateway.RMQ.Sync/RmqMessagePublisher.cs @@ -36,7 +36,7 @@ namespace Paramore.Brighter.MessagingGateway.RMQ.Sync /// /// Class RmqMessagePublisher. /// -internal class RmqMessagePublisher +internal sealed class RmqMessagePublisher { private static readonly ILogger s_logger = ApplicationLogging.CreateLogger(); private static readonly string[] _headersToReset = diff --git a/src/Paramore.Brighter.MessagingGateway.Redis/HeaderNames.cs b/src/Paramore.Brighter.MessagingGateway.Redis/HeaderNames.cs index fe4249840c..46d27f8ca1 100644 --- a/src/Paramore.Brighter.MessagingGateway.Redis/HeaderNames.cs +++ b/src/Paramore.Brighter.MessagingGateway.Redis/HeaderNames.cs @@ -24,7 +24,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.MessagingGateway.Redis { - internal class HeaderNames + internal static class HeaderNames { /// /// The bag for user defined contents diff --git a/src/Paramore.Brighter.Outbox.DynamoDB/BrighterDynamoDBFilter.cs b/src/Paramore.Brighter.Outbox.DynamoDB/BrighterDynamoDBFilter.cs index aed1931821..9d8568af54 100644 --- a/src/Paramore.Brighter.Outbox.DynamoDB/BrighterDynamoDBFilter.cs +++ b/src/Paramore.Brighter.Outbox.DynamoDB/BrighterDynamoDBFilter.cs @@ -3,7 +3,7 @@ namespace Paramore.Brighter.Outbox.DynamoDB { - internal class BrighterDynamoDBFilter + internal sealed class BrighterDynamoDBFilter { public QueryOperator Operator { get; } public IEnumerable Values { get; } diff --git a/src/Paramore.Brighter.Outbox.DynamoDB/DispatchedAllTopicsQueryContext.cs b/src/Paramore.Brighter.Outbox.DynamoDB/DispatchedAllTopicsQueryContext.cs index c370460c3a..71776fb3c2 100644 --- a/src/Paramore.Brighter.Outbox.DynamoDB/DispatchedAllTopicsQueryContext.cs +++ b/src/Paramore.Brighter.Outbox.DynamoDB/DispatchedAllTopicsQueryContext.cs @@ -27,7 +27,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.Outbox.DynamoDB; -internal class DispatchedAllTopicsQueryContext +internal sealed class DispatchedAllTopicsQueryContext { public int NextPage { get; private set; } public string LastEvaluatedKey { get; private set; } diff --git a/src/Paramore.Brighter.Outbox.DynamoDB/DispatchedMessagesQueryResult.cs b/src/Paramore.Brighter.Outbox.DynamoDB/DispatchedMessagesQueryResult.cs index c26597212b..f28a8d105c 100644 --- a/src/Paramore.Brighter.Outbox.DynamoDB/DispatchedMessagesQueryResult.cs +++ b/src/Paramore.Brighter.Outbox.DynamoDB/DispatchedMessagesQueryResult.cs @@ -27,7 +27,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.Outbox.DynamoDB; -internal class DispatchedMessagesQueryResult +internal sealed class DispatchedMessagesQueryResult { public IEnumerable Messages { get; private set; } public string PaginationToken { get; private set; } diff --git a/src/Paramore.Brighter.Outbox.DynamoDB/DispatchedTopicQueryContext.cs b/src/Paramore.Brighter.Outbox.DynamoDB/DispatchedTopicQueryContext.cs index 83c47fa221..bd99e554e5 100644 --- a/src/Paramore.Brighter.Outbox.DynamoDB/DispatchedTopicQueryContext.cs +++ b/src/Paramore.Brighter.Outbox.DynamoDB/DispatchedTopicQueryContext.cs @@ -25,7 +25,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.Outbox.DynamoDB; -internal class DispatchedTopicQueryContext +internal sealed class DispatchedTopicQueryContext { public int NextPage { get; private set; } public string LastEvaluatedKey { get; private set; } diff --git a/src/Paramore.Brighter.Outbox.DynamoDB/KeyTopicDeliveredTimeExpression.cs b/src/Paramore.Brighter.Outbox.DynamoDB/KeyTopicDeliveredTimeExpression.cs index 8aacc370bb..9e1a84cd9a 100644 --- a/src/Paramore.Brighter.Outbox.DynamoDB/KeyTopicDeliveredTimeExpression.cs +++ b/src/Paramore.Brighter.Outbox.DynamoDB/KeyTopicDeliveredTimeExpression.cs @@ -4,14 +4,12 @@ namespace Paramore.Brighter.Outbox.DynamoDB { - internal class KeyTopicDeliveredTimeExpression + internal sealed class KeyTopicDeliveredTimeExpression { - private readonly Expression _expression; - - public KeyTopicDeliveredTimeExpression() + private readonly Expression _expression = new() { - _expression = new Expression { ExpressionStatement = "Topic = :v_Topic and DeliveryTime < :v_SinceTime" }; - } + ExpressionStatement = "Topic = :v_Topic and DeliveryTime < :v_SinceTime" + }; public override string ToString() { @@ -20,11 +18,11 @@ public override string ToString() public Expression Generate(string topicName, DateTimeOffset sinceTime) { - var values = new Dictionary(); - values.Add(":v_Topic", topicName); - values.Add(":v_SinceTime", sinceTime.Ticks); - - _expression.ExpressionAttributeValues = values; + _expression.ExpressionAttributeValues = new Dictionary(capacity: 2) + { + { ":v_Topic", topicName }, + { ":v_SinceTime", sinceTime.Ticks } + }; return _expression; } diff --git a/src/Paramore.Brighter.Outbox.DynamoDB/KeyTopicOutstandingCreatedTimeExpression.cs b/src/Paramore.Brighter.Outbox.DynamoDB/KeyTopicOutstandingCreatedTimeExpression.cs index fbff217e94..5f227ff73f 100644 --- a/src/Paramore.Brighter.Outbox.DynamoDB/KeyTopicOutstandingCreatedTimeExpression.cs +++ b/src/Paramore.Brighter.Outbox.DynamoDB/KeyTopicOutstandingCreatedTimeExpression.cs @@ -4,14 +4,12 @@ namespace Paramore.Brighter.Outbox.DynamoDB { - internal class KeyTopicOutstandingCreatedTimeExpression + internal sealed class KeyTopicOutstandingCreatedTimeExpression { - private readonly Expression _expression; - - public KeyTopicOutstandingCreatedTimeExpression() + private readonly Expression _expression = new() { - _expression = new Expression { ExpressionStatement = "TopicShard = :v_TopicShard and OutstandingCreatedTime < :v_OutstandingCreatedTime" }; - } + ExpressionStatement = "TopicShard = :v_TopicShard and OutstandingCreatedTime < :v_OutstandingCreatedTime" + }; public override string ToString() { @@ -20,11 +18,11 @@ public override string ToString() public Expression Generate(string topicName, DateTimeOffset createdTime, int shard) { - var values = new Dictionary(); - values.Add(":v_TopicShard", $"{topicName}_{shard}"); - values.Add(":v_OutstandingCreatedTime", createdTime.Ticks); - - _expression.ExpressionAttributeValues = values; + _expression.ExpressionAttributeValues = new Dictionary(capacity: 2) + { + { ":v_TopicShard", $"{topicName}_{shard}" }, + { ":v_OutstandingCreatedTime", createdTime.Ticks } + }; return _expression; } diff --git a/src/Paramore.Brighter.Outbox.DynamoDB/OutstandingAllTopicsQueryContext.cs b/src/Paramore.Brighter.Outbox.DynamoDB/OutstandingAllTopicsQueryContext.cs index eb91de2142..a2bf4d6559 100644 --- a/src/Paramore.Brighter.Outbox.DynamoDB/OutstandingAllTopicsQueryContext.cs +++ b/src/Paramore.Brighter.Outbox.DynamoDB/OutstandingAllTopicsQueryContext.cs @@ -27,7 +27,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.Outbox.DynamoDB; -internal class OutstandingAllTopicsQueryContext +internal sealed class OutstandingAllTopicsQueryContext { public int NextPage { get; private set; } public string LastEvaluatedKey { get; private set; } diff --git a/src/Paramore.Brighter.Outbox.DynamoDB/OutstandingMessagesQueryResult.cs b/src/Paramore.Brighter.Outbox.DynamoDB/OutstandingMessagesQueryResult.cs index d22115d587..22d30b9a3f 100644 --- a/src/Paramore.Brighter.Outbox.DynamoDB/OutstandingMessagesQueryResult.cs +++ b/src/Paramore.Brighter.Outbox.DynamoDB/OutstandingMessagesQueryResult.cs @@ -27,7 +27,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.Outbox.DynamoDB; -internal class OutstandingMessagesQueryResult +internal sealed class OutstandingMessagesQueryResult { public IEnumerable Messages { get; private set; } public int ShardNumber { get; private set; } diff --git a/src/Paramore.Brighter.Outbox.DynamoDB/OutstandingTopicQueryContext.cs b/src/Paramore.Brighter.Outbox.DynamoDB/OutstandingTopicQueryContext.cs index fdb4196d0f..5705192bdf 100644 --- a/src/Paramore.Brighter.Outbox.DynamoDB/OutstandingTopicQueryContext.cs +++ b/src/Paramore.Brighter.Outbox.DynamoDB/OutstandingTopicQueryContext.cs @@ -25,7 +25,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.Outbox.DynamoDB; -internal class OutstandingTopicQueryContext +internal sealed class OutstandingTopicQueryContext { public int NextPage { get; private set; } public int ShardNumber { get; private set; } diff --git a/src/Paramore.Brighter.Outbox.DynamoDB/TimeSinceExpression.cs b/src/Paramore.Brighter.Outbox.DynamoDB/TimeSinceExpression.cs index bba86e2070..309a5d8b1a 100644 --- a/src/Paramore.Brighter.Outbox.DynamoDB/TimeSinceExpression.cs +++ b/src/Paramore.Brighter.Outbox.DynamoDB/TimeSinceExpression.cs @@ -4,22 +4,19 @@ namespace Paramore.Brighter.Outbox.DynamoDB { - internal class TimeSinceExpression + internal sealed class TimeSinceExpression { - private Expression _expression; - - public TimeSinceExpression() + private readonly Expression _expression = new() { - _expression = new Expression(); - _expression.ExpressionStatement = "DeliveryTime >= :v_SinceTime"; - } + ExpressionStatement = "DeliveryTime >= :v_SinceTime" + }; public Expression Generate(DateTime sinceTime) { - var values = new Dictionary(); - values.Add(":v_SinceTime", sinceTime.Ticks); - - _expression.ExpressionAttributeValues = values; + _expression.ExpressionAttributeValues = new Dictionary(capacity: 1) + { + { ":v_SinceTime", sinceTime.Ticks } + }; return _expression; } diff --git a/src/Paramore.Brighter.ServiceActivator/ConsumerFactory.cs b/src/Paramore.Brighter.ServiceActivator/ConsumerFactory.cs index 77acd1633c..0dd9bba8c0 100644 --- a/src/Paramore.Brighter.ServiceActivator/ConsumerFactory.cs +++ b/src/Paramore.Brighter.ServiceActivator/ConsumerFactory.cs @@ -27,7 +27,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.ServiceActivator { - internal class ConsumerFactory : IConsumerFactory where TRequest : class, IRequest + internal sealed class ConsumerFactory : IConsumerFactory where TRequest : class, IRequest { private readonly IAmACommandProcessor _commandProcessor; private readonly IAmAMessageMapperRegistry? _messageMapperRegistry; diff --git a/src/Paramore.Brighter.ServiceActivator/ControlBus/ControlBusReceiverBuilder.cs b/src/Paramore.Brighter.ServiceActivator/ControlBus/ControlBusReceiverBuilder.cs index 3883a96585..6ac517a149 100644 --- a/src/Paramore.Brighter.ServiceActivator/ControlBus/ControlBusReceiverBuilder.cs +++ b/src/Paramore.Brighter.ServiceActivator/ControlBus/ControlBusReceiverBuilder.cs @@ -211,7 +211,7 @@ public Dispatcher Build(string hostName) /// /// We do not track outgoing control bus messages - so this acts as a sink for such messages /// - private class SinkOutboxSync : IAmAnOutboxSync + private sealed class SinkOutboxSync : IAmAnOutboxSync { public IAmABrighterTracer? Tracer { private get; set; } diff --git a/src/Paramore.Brighter.ServiceActivator/MessageMappingException.cs b/src/Paramore.Brighter.ServiceActivator/MessageMappingException.cs index 14ee082e5c..7a08a2430b 100644 --- a/src/Paramore.Brighter.ServiceActivator/MessageMappingException.cs +++ b/src/Paramore.Brighter.ServiceActivator/MessageMappingException.cs @@ -26,7 +26,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter.ServiceActivator { - internal class MessageMappingException : Exception + internal sealed class MessageMappingException : Exception { public MessageMappingException(string message, Exception exception) : base(message, exception) { } } diff --git a/src/Paramore.Brighter.ServiceActivator/Ports/ControlBusHandlerFactory.cs b/src/Paramore.Brighter.ServiceActivator/Ports/ControlBusHandlerFactory.cs index 3a85533dd1..fa715dedf2 100644 --- a/src/Paramore.Brighter.ServiceActivator/Ports/ControlBusHandlerFactory.cs +++ b/src/Paramore.Brighter.ServiceActivator/Ports/ControlBusHandlerFactory.cs @@ -3,7 +3,7 @@ namespace Paramore.Brighter.ServiceActivator.Ports { - internal class ControlBusHandlerFactorySync : IAmAHandlerFactorySync + internal sealed class ControlBusHandlerFactorySync : IAmAHandlerFactorySync { private readonly Func _commandProcessorFactory; private readonly IDispatcher _worker; diff --git a/src/Paramore.Brighter.Tranformers.AWS/S3LuggageStore.cs b/src/Paramore.Brighter.Tranformers.AWS/S3LuggageStore.cs index f4766ee095..72d703abe5 100644 --- a/src/Paramore.Brighter.Tranformers.AWS/S3LuggageStore.cs +++ b/src/Paramore.Brighter.Tranformers.AWS/S3LuggageStore.cs @@ -71,7 +71,6 @@ public class S3LuggageStore : IAmAStorageProviderAsync, IDisposable private string _accountId; private string _bucketName; private IAmazonS3 _client; - private AsyncRetryPolicy _policy; private static readonly ILogger s_logger = ApplicationLogging.CreateLogger(); private string _luggagePrefix; @@ -157,7 +156,6 @@ public static async Task CreateAsync(IAmazonS3 client, luggageStore._luggagePrefix = luggagePrefix; if (policy == null) policy = GetDefaultS3Policy(); - luggageStore._policy = policy; if (storeCreation == S3LuggageStoreCreation.CreateIfMissing || storeCreation == S3LuggageStoreCreation.ValidateExists) { @@ -294,7 +292,7 @@ private static async Task BucketExistsAsync(IHttpClientFactory httpClientF httpClient.BaseAddress = new Uri($"https://{bucketName}.s3.{bucketRegion.Value}.amazonaws.com"); using var headRequest = new HttpRequestMessage(HttpMethod.Head, @"/"); headRequest.Headers.Add("x-amz-expected-bucket-owner", accountId); - var response = await httpClient.SendAsync(headRequest); + using var response = await httpClient.SendAsync(headRequest); //If we deny public access to the bucket, but it exists we get access denied; we get not-found if it does not exist return (response.IsSuccessStatusCode || response.StatusCode == HttpStatusCode.Forbidden); } diff --git a/src/Paramore.Brighter/AsyncRequestHandlers.cs b/src/Paramore.Brighter/AsyncRequestHandlers.cs index c0abb906d8..c01fdb296d 100644 --- a/src/Paramore.Brighter/AsyncRequestHandlers.cs +++ b/src/Paramore.Brighter/AsyncRequestHandlers.cs @@ -28,7 +28,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter { - internal class AsyncRequestHandlers : IEnumerable> + internal sealed class AsyncRequestHandlers : IEnumerable> where TRequest : class, IRequest { private readonly IEnumerable _handlers; diff --git a/src/Paramore.Brighter/HandlerFactory.cs b/src/Paramore.Brighter/HandlerFactory.cs index ed64baf8ff..66d6f3b01c 100644 --- a/src/Paramore.Brighter/HandlerFactory.cs +++ b/src/Paramore.Brighter/HandlerFactory.cs @@ -26,7 +26,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter { - internal class HandlerFactory where TRequest : class, IRequest + internal sealed class HandlerFactory where TRequest : class, IRequest { private readonly RequestHandlerAttribute _attribute; private readonly IAmAHandlerFactorySync _factorySync; diff --git a/src/Paramore.Brighter/HandlerLifetimeScope.cs b/src/Paramore.Brighter/HandlerLifetimeScope.cs index 6f0be0faf9..d1badf1b42 100644 --- a/src/Paramore.Brighter/HandlerLifetimeScope.cs +++ b/src/Paramore.Brighter/HandlerLifetimeScope.cs @@ -30,7 +30,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter { - internal class HandlerLifetimeScope : IAmALifetime + internal sealed class HandlerLifetimeScope : IAmALifetime { private static readonly ILogger s_logger= ApplicationLogging.CreateLogger(); diff --git a/src/Paramore.Brighter/InMemoryMessageConsumer.cs b/src/Paramore.Brighter/InMemoryMessageConsumer.cs index aaf873a99a..b9ed4bb16b 100644 --- a/src/Paramore.Brighter/InMemoryMessageConsumer.cs +++ b/src/Paramore.Brighter/InMemoryMessageConsumer.cs @@ -271,7 +271,5 @@ private bool RequeueNoDelay(Message message) } } - private record LockedMessage(Message Message, DateTimeOffset LockedAt); - - + private sealed record LockedMessage(Message Message, DateTimeOffset LockedAt); } diff --git a/src/Paramore.Brighter/RequestHandlers.cs b/src/Paramore.Brighter/RequestHandlers.cs index 1eee8163db..bc936cb398 100644 --- a/src/Paramore.Brighter/RequestHandlers.cs +++ b/src/Paramore.Brighter/RequestHandlers.cs @@ -28,7 +28,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter { - internal class RequestHandlers : IEnumerable> + internal sealed class RequestHandlers : IEnumerable> where TRequest : class, IRequest { private readonly IEnumerable _handlers; @@ -48,4 +48,4 @@ IEnumerator IEnumerable.GetEnumerator() return GetEnumerator(); } } -} \ No newline at end of file +} diff --git a/src/Paramore.Brighter/Tasks/BrighterTaskQueue.cs b/src/Paramore.Brighter/Tasks/BrighterTaskQueue.cs index 8d966bb153..b9f92b30bc 100644 --- a/src/Paramore.Brighter/Tasks/BrighterTaskQueue.cs +++ b/src/Paramore.Brighter/Tasks/BrighterTaskQueue.cs @@ -24,7 +24,7 @@ namespace Paramore.Brighter.Tasks; /// /// Represents a task queue that allows tasks to be added and consumed in a thread-safe manner. /// -internal class BrighterTaskQueue : IDisposable +internal sealed class BrighterTaskQueue : IDisposable { private readonly BlockingCollection> _queue = new(); diff --git a/src/Paramore.Brighter/Tasks/BrighterTaskScheduler.cs b/src/Paramore.Brighter/Tasks/BrighterTaskScheduler.cs index fe54b64672..659635b8b8 100644 --- a/src/Paramore.Brighter/Tasks/BrighterTaskScheduler.cs +++ b/src/Paramore.Brighter/Tasks/BrighterTaskScheduler.cs @@ -16,7 +16,6 @@ using System; using System.Collections.Generic; using System.Diagnostics; -using System.Threading; using System.Threading.Tasks; namespace Paramore.Brighter.Tasks; @@ -25,7 +24,7 @@ namespace Paramore.Brighter.Tasks; /// This class provides a task scheduler that causes all tasks to be executed synchronously on the current thread. /// The synchronizationHelper and scheduler are used to run continuations on the same thread as the async operation. /// -internal class BrighterTaskScheduler : TaskScheduler +internal sealed class BrighterTaskScheduler : TaskScheduler { private readonly BrighterAsyncContext _asyncContext; diff --git a/src/Paramore.Brighter/TransformerFactory.cs b/src/Paramore.Brighter/TransformerFactory.cs index 3b289799f8..8ba43ea01c 100644 --- a/src/Paramore.Brighter/TransformerFactory.cs +++ b/src/Paramore.Brighter/TransformerFactory.cs @@ -25,7 +25,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter { - internal class TransformerFactory where TRequest: class, IRequest + internal sealed class TransformerFactory where TRequest: class, IRequest { private readonly TransformAttribute _attribute; private readonly IAmAMessageTransformerFactory _factory; diff --git a/src/Paramore.Brighter/TransformerFactoryAsync.cs b/src/Paramore.Brighter/TransformerFactoryAsync.cs index 1074bf6ea7..e3f0a036d7 100644 --- a/src/Paramore.Brighter/TransformerFactoryAsync.cs +++ b/src/Paramore.Brighter/TransformerFactoryAsync.cs @@ -25,7 +25,7 @@ THE SOFTWARE. */ namespace Paramore.Brighter { - internal class TransformerFactoryAsync where TRequest: class, IRequest + internal sealed class TransformerFactoryAsync where TRequest: class, IRequest { private readonly TransformAttribute _attribute; private readonly IAmAMessageTransformerFactoryAsync _factory;