@@ -113,10 +113,10 @@ public async Task<bool> DeleteSubscriptionByIdAsync(NotificationType notificatio
113
113
return true ;
114
114
}
115
115
116
- public void StartReceivingNotificationMessages ( ParameterMessageReceiver param , IMessageReceiver messageReceiver ) =>
117
- Task . Run ( ( ) => StartReceivingNotificationMessagesAsync ( param , messageReceiver ) ) . ConfigureAwait ( false ) . GetAwaiter ( ) . GetResult ( ) ;
116
+ public void StartReceivingNotificationMessages ( ParameterMessageReceiver param , IMessageReceiver messageReceiver , bool isDeleteNotificationAfterRead = true ) =>
117
+ Task . Run ( ( ) => StartReceivingNotificationMessagesAsync ( param , messageReceiver , isDeleteNotificationAfterRead ) ) . ConfigureAwait ( false ) . GetAwaiter ( ) . GetResult ( ) ;
118
118
119
- public async Task StartReceivingNotificationMessagesAsync ( ParameterMessageReceiver param , IMessageReceiver messageReceiver , CancellationToken cancellationToken = default )
119
+ public async Task StartReceivingNotificationMessagesAsync ( ParameterMessageReceiver param , IMessageReceiver messageReceiver , bool isDeleteNotificationAfterRead = true , CancellationToken cancellationToken = default )
120
120
{
121
121
var awsAccessKeyId = param . awsAccessKeyId ;
122
122
var awsSecretAccessKey = param . awsSecretAccessKey ;
@@ -140,7 +140,7 @@ public async Task StartReceivingNotificationMessagesAsync(ParameterMessageReceiv
140
140
{
141
141
foreach ( var msg in Messages )
142
142
{
143
- ProcessAnyOfferChangedMessage ( msg , messageReceiver , amazonSQSClient , SQS_URL , cancellationToken ) . ConfigureAwait ( false ) ;
143
+ ProcessAnyOfferChangedMessage ( msg , messageReceiver , amazonSQSClient , SQS_URL , isDeleteNotificationAfterRead , cancellationToken ) . ConfigureAwait ( false ) ;
144
144
145
145
}
146
146
@@ -156,19 +156,23 @@ public async Task StartReceivingNotificationMessagesAsync(ParameterMessageReceiv
156
156
}
157
157
}
158
158
159
- private async Task ProcessAnyOfferChangedMessage ( Message msg , IMessageReceiver messageReceiver , AmazonSQSClient amazonSQSClient , string SQS_URL , CancellationToken cancellationToken = default )
159
+ private async Task ProcessAnyOfferChangedMessage ( Message msg , IMessageReceiver messageReceiver , AmazonSQSClient amazonSQSClient , string SQS_URL , bool isDeleteNotificationAfterRead = true , CancellationToken cancellationToken = default )
160
160
{
161
161
try
162
162
{
163
163
var data = DeserializeNotification ( msg ) ;
164
164
165
165
messageReceiver . NewMessageRevicedTriger ( data ) ;
166
- await DeleteMessageFromQueueAsync ( amazonSQSClient , SQS_URL , msg . ReceiptHandle , cancellationToken ) ;
166
+
167
+ if ( isDeleteNotificationAfterRead )
168
+ await DeleteMessageFromQueueAsync ( amazonSQSClient , SQS_URL , msg . ReceiptHandle , cancellationToken ) ;
167
169
}
168
170
catch ( Exception ex )
169
171
{
170
172
messageReceiver . ErrorCatch ( ex ) ;
171
- await DeleteMessageFromQueueAsync ( amazonSQSClient , SQS_URL , msg . ReceiptHandle , cancellationToken ) ;
173
+
174
+ if ( isDeleteNotificationAfterRead )
175
+ await DeleteMessageFromQueueAsync ( amazonSQSClient , SQS_URL , msg . ReceiptHandle , cancellationToken ) ;
172
176
}
173
177
}
174
178
private async Task DeleteMessageFromQueueAsync ( AmazonSQSClient sqsClient , string QueueUrl , string ReceiptHandle , CancellationToken cancellationToken = default )
0 commit comments