private async Task <bool> PushMessageToEventProcessorSaga(string message, string channelId, CommandSendMessageProperties consumerMessageProperties, ChatReportModel chatReport)
        {
            try
            {
                if (_serviceBus != null || _serviceBus.BusAccess != null)
                {
                    _logger.LogDebug($"EdisonBot: Pushing message from user '{consumerMessageProperties.From.Id}'.");

                    //Get deviceId
                    string      userId = GetDatabaseUserId(channelId, consumerMessageProperties.UserId);
                    DeviceModel device = await _deviceRestService.GetMobileDeviceFromUserId(userId);

                    //Get last reportType
                    Guid?reportType = consumerMessageProperties.ReportType;
                    if (consumerMessageProperties.ReportType == null || consumerMessageProperties.ReportType == Guid.Empty)
                    {
                        reportType = await GetLastReportTypeFromUser(consumerMessageProperties.UserId);
                    }

                    if (device != null)
                    {
                        IEventSagaReceived newMessage = new EventSagaReceivedEvent()
                        {
                            DeviceId  = device.DeviceId,
                            EventType = "message",
                            Date      = DateTime.UtcNow,
                            Data      = JsonConvert.SerializeObject(new MessageEventMetadata()
                            {
                                UserId       = consumerMessageProperties.UserId,
                                Username     = consumerMessageProperties.From.Name,
                                ReportType   = reportType,
                                Message      = message,
                                ChatReportId = chatReport.ReportId
                            })
                        };
                        await _serviceBus.BusAccess.Publish(newMessage);

                        return(true);
                    }
                }
                return(false);
            }
            catch (Exception e)
            {
                _logger.LogError($"EdisonBot: {e.Message}");
                return(false);
            }
        }
Beispiel #2
0
 private async Task <bool> PushMessageToEventProcessorSaga(string deviceId, string eventType, DateTime date, string body)
 {
     try
     {
         _logger.LogDebug($"MessageDispatcherService.PushMessageToEventProcessorSaga: Pushing message for device '{deviceId}', device type '{eventType}'.");
         IEventSagaReceived newMessage = new EventSagaReceivedEvent()
         {
             DeviceId  = new Guid(deviceId),
             EventType = eventType,
             Date      = date,
             Data      = body
         };
         await _serviceBus.BusAccess.Publish(newMessage);
     }
     catch (Exception e)
     {
         _logger.LogError($"MessageDispatcherService.PushMessageToEventProcessorSaga: {e.Message}");
         return(false);
     }
     return(true);
 }