コード例 #1
0
        public ICreateMessageDTO GetPublishMessageBody(IPublishMessageParameters parameters)
        {
            ICreateMessageDTO createMessageDTO = _createMessageDTOFactory.Create();

            createMessageDTO.Event                                  = _eventDTOFactory.Create();
            createMessageDTO.Event.Type                             = EventType.MessageCreate;
            createMessageDTO.Event.MessageCreate                    = _messageCreateDTOFactory.Create();
            createMessageDTO.Event.MessageCreate.Target             = _messageCreateTargetDTOFactory.Create();
            createMessageDTO.Event.MessageCreate.Target.RecipientId = parameters.RecipientId;
            createMessageDTO.Event.MessageCreate.MessageData        = _messageDataDTOFactory.Create();
            createMessageDTO.Event.MessageCreate.MessageData.Text   = parameters.Text;

            // If there is media attached, include it
            if (parameters.AttachmentMediaId != null)
            {
                createMessageDTO.Event.MessageCreate.MessageData.Attachment          = _attachmentDTOFactory.Create();
                createMessageDTO.Event.MessageCreate.MessageData.Attachment.Type     = AttachmentType.Media;
                createMessageDTO.Event.MessageCreate.MessageData.Attachment.Media    = _mediaEntityFactory.Create();
                createMessageDTO.Event.MessageCreate.MessageData.Attachment.Media.Id = parameters.AttachmentMediaId;
            }

            // If there are quick reply options, include them
            if (parameters.QuickReplyOptions != null && parameters.QuickReplyOptions.Length > 0)
            {
                createMessageDTO.Event.MessageCreate.MessageData.QuickReply         = _quickReplyDTOFactory.Create();
                createMessageDTO.Event.MessageCreate.MessageData.QuickReply.Type    = QuickReplyType.Options;
                createMessageDTO.Event.MessageCreate.MessageData.QuickReply.Options = parameters.QuickReplyOptions;
            }

            return(createMessageDTO);
        }
コード例 #2
0
        public IMessage GenerateMessageFromCreateMessageDTO(ICreateMessageDTO createMessageDTO)
        {
            if (createMessageDTO?.Event == null || createMessageDTO.Event.Type != EventType.MessageCreate)
            {
                return(null);
            }

            return(GenerateMessageFromEventDTO(createMessageDTO.Event));
        }
コード例 #3
0
        private void ArrangeQueryGeneratorPublishMessage(IPublishMessageParameters parameters, string query,
                                                         ICreateMessageDTO createMessageDTO)
        {
            _fakeMessageQueryGenerator
            .CallsTo(x => x.GetPublishMessageQuery(parameters))
            .Returns(query);

            _fakeMessageQueryGenerator
            .CallsTo(x => x.GetPublishMessageBody(parameters))
            .Returns(createMessageDTO);
        }
コード例 #4
0
 public IMessage CreateMessage(ICreateMessageDTO createMessageDTO)
 {
     return(CreateMessage(createMessageDTO?.MessageEvent));
 }