public NewMessagesNoticeHandler(CommunicationObject @object, NodeConnection current, IConversationsNoticeService conversationsNoticeService, IAttachmentsService attachmentsService, ICreateMessagesService createMessagesService, ICreateChannelsService createChannelsService, INodeRequestSender nodeRequestSender, ICrossNodeService crossNodeService, ILoadDialogsService loadDialogsService) { notice = (NewMessagesNodeNotice)@object; this.current = current; this.conversationsNoticeService = conversationsNoticeService; this.attachmentsService = attachmentsService; this.createMessagesService = createMessagesService; this.createChannelsService = createChannelsService; this.nodeRequestSender = nodeRequestSender; this.crossNodeService = crossNodeService; this.loadDialogsService = loadDialogsService; }
public async void SendNewChannelMessageNodeNoticeAsync(MessageVm message) { try { NewMessagesNodeNotice notice = new NewMessagesNodeNotice(message); IEnumerable <long> nodesIds = await _loadChannelsService.GetChannelNodesIdAsync(message.ConversationId.GetValueOrDefault()).ConfigureAwait(false); if (message.Attachments != null && message.Attachments.Any()) { var forwardedMessagesAttachment = message.Attachments.FirstOrDefault(opt => opt.Type == AttachmentType.ForwardedMessages); if (forwardedMessagesAttachment != null) { await _updateMessagesService.UpdateMessagesNodesIdsAsync((List <MessageVm>) forwardedMessagesAttachment.Payload, nodesIds).ConfigureAwait(false); } } await SendNoticeToNodesAsync(notice, nodesIds).ConfigureAwait(false); } catch (Exception ex) { Logger.WriteLog(ex); } }
public async void SendNewDialogMessageNodeNoticeAsync(MessageVm newMessage) { try { IEnumerable <long> nodesId = await _loadDialogsService.GetDlalogNodesAsync(newMessage.ConversationId.GetValueOrDefault()).ConfigureAwait(false); if (newMessage.Attachments != null && newMessage.Attachments.Any()) { var forwardedMessagesAttachment = newMessage.Attachments.FirstOrDefault(message => message.Type == AttachmentType.ForwardedMessages); if (forwardedMessagesAttachment != null) { await _updateMessagesService.UpdateMessagesNodesIdsAsync((List <MessageVm>) forwardedMessagesAttachment.Payload, nodesId).ConfigureAwait(false); } } NewMessagesNodeNotice notice = new NewMessagesNodeNotice(newMessage); await SendNoticeToNodesAsync(notice, nodesId).ConfigureAwait(false); } catch (Exception ex) { Logger.WriteLog(ex); } }