@@ -21,7 +21,7 @@ public class WeatherAlertService : IWeatherAlertService
2121 private readonly IWeatherAlertProviderFactory _weatherAlertProviderFactory ;
2222 private readonly IDepartmentSettingsRepository _departmentSettingsRepository ;
2323 private readonly IDepartmentsService _departmentsService ;
24- private readonly IMessageService _messageService ;
24+ private readonly ICommunicationService _communicationService ;
2525 private readonly ICallNotesRepository _callNotesRepository ;
2626 private readonly ICacheProvider _cacheProvider ;
2727 private readonly IEventAggregator _eventAggregator ;
@@ -33,7 +33,7 @@ public WeatherAlertService(
3333 IWeatherAlertProviderFactory weatherAlertProviderFactory ,
3434 IDepartmentSettingsRepository departmentSettingsRepository ,
3535 IDepartmentsService departmentsService ,
36- IMessageService messageService ,
36+ ICommunicationService communicationService ,
3737 ICallNotesRepository callNotesRepository ,
3838 ICacheProvider cacheProvider ,
3939 IEventAggregator eventAggregator )
@@ -44,7 +44,7 @@ public WeatherAlertService(
4444 _weatherAlertProviderFactory = weatherAlertProviderFactory ;
4545 _departmentSettingsRepository = departmentSettingsRepository ;
4646 _departmentsService = departmentsService ;
47- _messageService = messageService ;
47+ _communicationService = communicationService ;
4848 _callNotesRepository = callNotesRepository ;
4949 _cacheProvider = cacheProvider ;
5050 _eventAggregator = eventAggregator ;
@@ -381,33 +381,31 @@ public async Task SendPendingNotificationsAsync(CancellationToken ct = default)
381381 var members = await _departmentsService . GetAllMembersForDepartmentAsync ( departmentId ) ;
382382 if ( members != null && members . Any ( ) )
383383 {
384- // Use department managing user as sender for system messages
384+ // Use department managing user as sender for notifications
385385 var senderId = department ? . ManagingUserId ?? members . First ( ) . UserId ;
386386
387387 var subject = FormatAlertSubject ( alert ) ;
388388 var body = FormatAlertMessageBody ( alert , department ) ;
389389
390- var message = new Message
391- {
392- Subject = subject ,
393- Body = body ,
394- SendingUserId = senderId ,
395- SentOn = DateTime . UtcNow ,
396- SystemGenerated = true ,
397- IsBroadcast = true ,
398- Type = 0
399- } ;
400-
401390 foreach ( var member in members )
402391 {
403- if ( member . UserId != senderId && ! member . IsDisabled . GetValueOrDefault ( ) && ! member . IsDeleted )
404- message . AddRecipient ( member . UserId ) ;
392+ if ( member . UserId == senderId || member . IsDisabled . GetValueOrDefault ( ) || member . IsDeleted )
393+ continue ;
394+
395+ var notifyMsg = new Message
396+ {
397+ Subject = subject ,
398+ Body = body ,
399+ SendingUserId = senderId ,
400+ ReceivingUserId = member . UserId ,
401+ SentOn = DateTime . UtcNow ,
402+ SystemGenerated = true ,
403+ IsBroadcast = true ,
404+ Type = 0
405+ } ;
406+
407+ await _communicationService . SendMessageAsync ( notifyMsg , "Weather Alert System" , null , departmentId , null , department ) ;
405408 }
406-
407- var savedMessage = await _messageService . SaveMessageAsync ( message , ct ) ;
408- await _messageService . SendMessageAsync ( savedMessage , "Weather Alert System" , departmentId , false , ct ) ;
409-
410- alert . SystemMessageId = savedMessage . MessageId ;
411409 }
412410 }
413411 catch ( Exception ex )
0 commit comments