@@ -15,29 +15,15 @@ public ServiceBusProducer(AzureServiceBusConfiguration azureServiceBusConfigurat
1515 {
1616 var client = new ServiceBusClient ( azureServiceBusConfiguration . ConnectionString ) ;
1717 _sender = client . CreateSender ( queueOrTopicName ) ;
18-
1918 _logger = logger ;
2019 }
2120
2221 public async Task ProduceAsync ( TMessage message , CancellationToken cancellationToken )
2322 {
24- var json = JsonConvert . SerializeObject ( message ) ;
25- var serviceBusMessage = new ServiceBusMessage ( json )
26- {
27- Subject = message . RoutingKey ,
28- ApplicationProperties =
29- {
30- { "MessageType" , message . GetType ( ) . FullName } ,
31- { "CreatedAt" , message . CreatedDate . ToString ( "O" ) }
32- }
33- } ;
34-
35- await _sender . SendMessageAsync ( serviceBusMessage , cancellationToken ) ;
36-
37- _logger . LogInformation ( "Message {MessageType} published with successfully!" , message . GetType ( ) . Name ) ;
23+ await ProduceAsync ( message , producerOptions : null , cancellationToken ) ;
3824 }
3925
40- public Task ProduceAsync ( TMessage message , MessageOptions producerOptions , CancellationToken cancellationToken )
26+ public async Task ProduceAsync ( TMessage message , MessageOptions ? producerOptions , CancellationToken cancellationToken )
4127 {
4228 var json = JsonConvert . SerializeObject ( message ) ;
4329 var serviceBusMessage = new ServiceBusMessage ( json )
@@ -52,19 +38,31 @@ public Task ProduceAsync(TMessage message, MessageOptions producerOptions, Cance
5238
5339 if ( producerOptions ? . ApplicationProperties is not null )
5440 {
55- producerOptions ? . ApplicationProperties ?
56- . Where ( kvp => ! serviceBusMessage . ApplicationProperties . ContainsKey ( kvp . Key ) )
57- . ToList ( )
58- . ForEach ( kvp => serviceBusMessage . ApplicationProperties . Add ( kvp . Key , kvp . Value ) ) ;
41+ foreach ( var kvp in producerOptions . ApplicationProperties )
42+ {
43+ if ( ! serviceBusMessage . ApplicationProperties . ContainsKey ( kvp . Key ) )
44+ serviceBusMessage . ApplicationProperties . Add ( kvp . Key , kvp . Value ) ;
45+ }
5946 }
6047
6148 if ( producerOptions ? . Delay is not null )
6249 {
6350 serviceBusMessage . ScheduledEnqueueTime = DateTimeOffset . UtcNow . Add ( producerOptions . Delay . Value ) ;
6451 }
6552
66- return _sender . SendMessageAsync ( serviceBusMessage , cancellationToken ) ;
53+ await _sender . SendMessageAsync ( serviceBusMessage , cancellationToken ) ;
54+
55+ _logger . LogInformation ( "Message {MessageType} published successfully!" , message . GetType ( ) . Name ) ;
6756 }
6857
58+ public Task ProduceAsync ( TMessage message , TimeSpan delay , CancellationToken cancellationToken )
59+ {
60+ return ProduceAsync ( message , new MessageOptions ( delay , null ) , cancellationToken ) ;
61+ }
62+
63+ public Task ProduceAsync ( TMessage message , IDictionary < string , string > applicationProperties , CancellationToken cancellationToken )
64+ {
65+ return ProduceAsync ( message , new MessageOptions ( null , applicationProperties ) , cancellationToken ) ;
66+ }
6967 }
7068}
0 commit comments