Exemplo n.º 1
0
        // Publish Message
        public IMessageDTO PublishMessage(IPublishMessageParameters parameters)
        {
            _messageQueryValidator.ThrowIfMessageCannotBePublished(parameters);

            string query = _messageQueryGenerator.GetPublishMessageQuery(parameters);
            return _twitterAccessor.ExecutePOSTQuery<IMessageDTO>(query);
        }
Exemplo n.º 2
0
        // Publish Message
        public ICreateMessageDTO PublishMessage(IPublishMessageParameters parameters)
        {
            string query  = _messageQueryGenerator.GetPublishMessageQuery(parameters);
            var    reqDTO = _messageQueryGenerator.GetPublishMessageBody(parameters);

            return(_twitterAccessor.ExecutePOSTQueryJsonBody <ICreateMessageDTO>(query, reqDTO));
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 4
0
        public void ThrowIfMessageCannotBePublished(IPublishMessageParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters), "Publish message parameters cannot be null.");
            }
            if (!IsMessageTextValid(parameters.Text))
            {
                throw new ArgumentException("Message text is not valid.");
            }
            if (!_userQueryValidator.IsUserIdValid(parameters.RecipientId))
            {
                throw new ArgumentException("Recipient User ID is not valid");
            }

            // If quick reply options are specified, validate them
            if (parameters.QuickReplyOptions != null && parameters.QuickReplyOptions.Length > 0)
            {
                if (parameters.QuickReplyOptions.Length > TweetinviConsts.MESSAGE_QUICK_REPLY_MAX_OPTIONS)
                {
                    throw new ArgumentException("There are too many Quick Reply Options. You can only have up to " +
                                                TweetinviConsts.MESSAGE_QUICK_REPLY_MAX_OPTIONS);
                }

                var hasDescription = parameters.QuickReplyOptions[0].Description != null;
                foreach (var o in parameters.QuickReplyOptions)
                {
                    // If one option has a description, then they all must
                    //  https://developer.twitter.com/en/docs/direct-messages/quick-replies/api-reference/options
                    if ((hasDescription && o.Description == null) || (!hasDescription && o.Description != null))
                    {
                        throw new ArgumentException("If one Quick Reply Option has a description, then they all must");
                    }

                    if (o.Label == null)
                    {
                        throw new ArgumentException("Quick Reply Option Label is a required field");
                    }
                    if (o.Label.UTF32Length() > TweetinviConsts.MESSAGE_QUICK_REPLY_LABEL_MAX_LENGTH)
                    {
                        throw new ArgumentException("Quick Reply Option Label too long. Max length is " +
                                                    TweetinviConsts.MESSAGE_QUICK_REPLY_LABEL_MAX_LENGTH);
                    }

                    if (o.Description != null && o.Description.UTF32Length() >
                        TweetinviConsts.MESSAGE_QUICK_REPLY_DESCRIPTION_MAX_LENGTH)
                    {
                        throw new ArgumentException("Quick Reply Option Description too long. Max length is " +
                                                    TweetinviConsts.MESSAGE_QUICK_REPLY_DESCRIPTION_MAX_LENGTH);
                    }

                    if (o.Metadata != null && o.Metadata.UTF32Length() >
                        TweetinviConsts.MESSAGE_QUICK_REPLY_METADATA_MAX_LENGTH)
                    {
                        throw new ArgumentException("Quick Reply Option Metadata too long. Max length is " +
                                                    TweetinviConsts.MESSAGE_QUICK_REPLY_METADATA_MAX_LENGTH);
                    }
                }
            }
        }
Exemplo n.º 5
0
        // Publish Message
        public IMessageDTO PublishMessage(IPublishMessageParameters parameters)
        {
            _messageQueryValidator.ThrowIfMessageCannotBePublished(parameters);

            string query = _messageQueryGenerator.GetPublishMessageQuery(parameters);

            return(_twitterAccessor.ExecutePOSTQuery <IMessageDTO>(query));
        }
Exemplo n.º 6
0
        public Task <ITwitterResult <ICreateMessageDTO> > PublishMessageAsync(IPublishMessageParameters parameters, ITwitterRequest request)
        {
            var requestWithPayload = _messageQueryGenerator.GetPublishMessageQuery(parameters);

            request.Query.Url         = requestWithPayload.Url;
            request.Query.HttpMethod  = HttpMethod.POST;
            request.Query.HttpContent = requestWithPayload.Content;

            return(_twitterAccessor.ExecuteRequestAsync <ICreateMessageDTO>(request));
        }
Exemplo n.º 7
0
        // Publish Message
        public string GetPublishMessageQuery(IPublishMessageParameters parameters)
        {
            _messageQueryValidator.ThrowIfMessageCannotBePublished(parameters);

            var query = Resources.Message_NewMessage;

            query += _queryParameterGenerator.GenerateAdditionalRequestParameters(parameters.FormattedCustomQueryParameters, false);

            return(query);
        }
Exemplo n.º 8
0
        public IMessage PublishMessage(IPublishMessageParameters parameter)
        {
            if (parameter == null)
            {
                throw new ArgumentNullException("Parameter cannot be null.");
            }

            var publishedMessageDTO = _messageQueryExecutor.PublishMessage(parameter);
            return _messageFactory.GenerateMessageFromMessageDTO(publishedMessageDTO);
        }
Exemplo n.º 9
0
        public IMessage PublishMessage(IPublishMessageParameters parameter)
        {
            if (parameter == null)
            {
                throw new ArgumentNullException("Parameter cannot be null.");
            }

            var publishedMessageDTO = _messageQueryExecutor.PublishMessage(parameter);

            return(_messageFactory.GenerateMessageFromMessageDTO(publishedMessageDTO));
        }
Exemplo n.º 10
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);
        }
        public void Validate(IPublishMessageParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            if (string.IsNullOrEmpty(parameters.Text))
            {
                throw new ArgumentNullException($"{nameof(parameters)}.{nameof(parameters.Text)}");
            }
        }
Exemplo n.º 12
0
        public RequestWithPayload GetPublishMessageQuery(IPublishMessageParameters parameters)
        {
            var query = new StringBuilder(Resources.Message_Create);

            query.AddFormattedParameterToQuery(parameters.FormattedCustomQueryParameters);

            var content = _jsonContentFactory.Create(GetPublishMessageBody(parameters));

            return(new RequestWithPayload
            {
                Url = query.ToString(),
                Content = content
            });
        }
Exemplo n.º 13
0
        // Publish Message
        public string GetPublishMessageQuery(IPublishMessageParameters parameters)
        {
            _messageQueryValidator.ThrowIfMessageCannotBePublished(parameters);

            var messageText = parameters.Text;
            var recipient   = parameters.Recipient;

            var identifierParameter = _userQueryParameterGenerator.GenerateIdOrScreenNameParameter(recipient);

            var query = string.Format(Resources.Message_NewMessage, _twitterStringFormatter.TwitterEncode(messageText), identifierParameter);

            query += _queryParameterGenerator.GenerateAdditionalRequestParameters(parameters.FormattedCustomQueryParameters);

            return(query);
        }
Exemplo n.º 14
0
        public void ThrowIfMessageCannotBePublished(IPublishMessageParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("Publish message parameters cannot be null.");
            }

            var text = parameters.Text;

            _userQueryValidator.ThrowIfUserCannotBeIdentified(parameters.Recipient);

            if (!IsMessageTextValid(text))
            {
                throw new ArgumentException("Message text is not valid.");
            }
        }
Exemplo n.º 15
0
        private ICreateMessageDTO GetPublishMessageBody(IPublishMessageParameters parameters)
        {
            var createMessageDTO = new CreateMessageDTO
            {
                MessageEvent = new MessageEventDTO
                {
                    Type          = EventType.MessageCreate,
                    CreatedAt     = new DateTimeOffset(2000, 11, 22, 0, 0, 0, TimeSpan.Zero),
                    MessageCreate = new MessageCreateDTO
                    {
                        Target = new MessageCreateTargetDTO
                        {
                            RecipientId = parameters.RecipientId
                        },
                        MessageData = new MessageDataDTO
                        {
                            Text = parameters.Text
                        }
                    },
                }
            };

            // If there is media attached, include it
            if (parameters.MediaId != null)
            {
                createMessageDTO.MessageEvent.MessageCreate.MessageData.Attachment = new AttachmentDTO
                {
                    Type  = AttachmentType.Media,
                    Media = new MediaEntity {
                        Id = parameters.MediaId
                    }
                };
            }

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

            return(createMessageDTO);
        }
        private void ArrangeMessageDTORecipient(
            IPublishMessageParameters parameters,
            bool isRecipientValid,
            bool isRecipientIdValid,
            bool isRecipientScreenNameValid)
        {
            var recipient           = A.Fake <IUserDTO>();
            var recipientId         = TestHelper.GenerateRandomLong();
            var recipientScreenName = TestHelper.GenerateString();

            parameters.CallsTo(x => x.Recipient).Returns(recipient);
            parameters.CallsTo(x => x.RecipientId).Returns(recipientId);
            parameters.CallsTo(x => x.RecipientScreenName).Returns(recipientScreenName);

            _fakeUserQueryValidator.CallsTo(x => x.CanUserBeIdentified(recipient)).Returns(isRecipientValid);
            _fakeUserQueryValidator.CallsTo(x => x.IsUserIdValid(recipientId)).Returns(isRecipientIdValid);
            _fakeUserQueryValidator.CallsTo(x => x.IsScreenNameValid(recipientScreenName)).Returns(isRecipientScreenNameValid);
        }
Exemplo n.º 17
0
        // Publish Message
        public string GetPublishMessageQuery(IPublishMessageParameters parameters)
        {
            var messageText = parameters.Text;
            var recipient   = parameters.Recipient;

            if (!_messageQueryValidator.IsMessageTextValid(messageText) || !_userQueryValidator.CanUserBeIdentified(recipient))
            {
                return(null);
            }

            var identifierParameter = _userQueryParameterGenerator.GenerateIdOrScreenNameParameter(recipient);

            var query = GetPublishMessageFormattedQuery(messageText, identifierParameter);

            query += _queryParameterGenerator.GenerateAdditionalRequestParameters(parameters.FormattedCustomQueryParameters);

            return(query);
        }
Exemplo n.º 18
0
        public bool CanMessageBePublished(IPublishMessageParameters parameters)
        {
            var message = parameters.Message;
            var text = parameters.Text;

            bool messageTextIsValid = IsMessageTextValid(text);
            bool isRecipientValid = _userQueryValidator.CanUserBeIdentified(parameters.Recipient) ||
                                    _userQueryValidator.IsUserIdValid(parameters.RecipientId) ||
                                    _userQueryValidator.IsScreenNameValid(parameters.RecipientScreenName);

            bool isMessageInValidState = message == null || (!message.IsMessagePublished && !message.IsMessageDestroyed);

            if (!isMessageInValidState)
            {
                return false;
            }

            return isRecipientValid && messageTextIsValid;
        }
Exemplo n.º 19
0
        public bool CanMessageBePublished(IPublishMessageParameters parameters)
        {
            var message = parameters.Message;
            var text    = parameters.Text;

            bool messageTextIsValid = IsMessageTextValid(text);
            bool isRecipientValid   = _userQueryValidator.CanUserBeIdentified(parameters.Recipient) ||
                                      _userQueryValidator.IsUserIdValid(parameters.RecipientId) ||
                                      _userQueryValidator.IsScreenNameValid(parameters.RecipientScreenName);

            bool isMessageInValidState = message == null || (!message.IsMessagePublished && !message.IsMessageDestroyed);

            if (!isMessageInValidState)
            {
                return(false);
            }

            return(isRecipientValid && messageTextIsValid);
        }
Exemplo n.º 20
0
 public Task <ITwitterResult <ICreateMessageDTO> > PublishMessage(IPublishMessageParameters parameters)
 {
     _messagesClientParametersValidator.Validate(parameters);
     return(ExecuteRequest(request => _messageController.PublishMessage(parameters, request)));
 }
        private void ArrangeMessagePublishParameterText(IPublishMessageParameters parameters, bool doesTextExists, bool textContainsChars)
        {
            string text = doesTextExists ? textContainsChars ? TestHelper.GenerateString() : string.Empty : null;

            parameters.CallsTo(x => x.Text).Returns(text);
        }
Exemplo n.º 22
0
        // Publish Message
        public string GetPublishMessageQuery(IPublishMessageParameters parameters)
        {
            _messageQueryValidator.ThrowIfMessageCannotBePublished(parameters);

            var messageText = parameters.Text;
            var recipient = parameters.Recipient;

            var identifierParameter = _userQueryParameterGenerator.GenerateIdOrScreenNameParameter(recipient);

            var query = string.Format(Resources.Message_NewMessage, _twitterStringFormatter.TwitterEncode(messageText), identifierParameter);
            query += _queryParameterGenerator.GenerateAdditionalRequestParameters(parameters.FormattedCustomQueryParameters);

            return query;
        }
Exemplo n.º 23
0
 public static string PublishMessage(IPublishMessageParameters parameters)
 {
     return(MessageJsonController.PublishMessage(parameters));
 }
Exemplo n.º 24
0
        public string PublishMessage(IPublishMessageParameters parameters)
        {
            string query = _messageQueryGenerator.GetPublishMessageQuery(parameters);

            return(_twitterAccessor.ExecutePOSTQueryReturningJson(query));
        }
Exemplo n.º 25
0
 // Publish Message
 public static async Task <IMessage> PublishMessage(IPublishMessageParameters parameters)
 {
     return(await Sync.ExecuteTaskAsync(() => Message.PublishMessage(parameters)));
 }
Exemplo n.º 26
0
        // Publish Message
        public IMessageDTO PublishMessage(IPublishMessageParameters parameters)
        {
            string query = _messageQueryGenerator.GetPublishMessageQuery(parameters);

            return(_twitterAccessor.ExecutePOSTQuery <IMessageDTO>(query));
        }
 private void ArrangeQueryGeneratorPublishMessage(IPublishMessageParameters parameters, string query)
 {
     _fakeMessageQueryGenerator
         .CallsTo(x => x.GetPublishMessageQuery(parameters))
         .Returns(query);
 }
        private void ArrangeMessagePublishParameterText(IPublishMessageParameters parameters, bool doesTextExists, bool textContainsChars)
        {
            string text = doesTextExists ? textContainsChars ? TestHelper.GenerateString() : string.Empty : null;

            parameters.CallsTo(x => x.Text).Returns(text);
        }
Exemplo n.º 29
0
 public string PublishMessage(IPublishMessageParameters parameters)
 {
     string query = _messageQueryGenerator.GetPublishMessageQuery(parameters);
     return _twitterAccessor.ExecuteJsonPOSTQuery(query);
 }
Exemplo n.º 30
0
 /// <summary>
 /// Publish a message
 /// </summary>
 public static IMessage PublishMessage(IPublishMessageParameters parameters)
 {
     return(MessageController.PublishMessage(parameters));
 }
        private void ArrangeMessageDTORecipient(
            IPublishMessageParameters parameters,
            bool isRecipientValid,
            bool isRecipientIdValid,
            bool isRecipientScreenNameValid)
        {
            var recipient = A.Fake<IUserDTO>();
            var recipientId = TestHelper.GenerateRandomLong();
            var recipientScreenName = TestHelper.GenerateString();

            parameters.CallsTo(x => x.Recipient).Returns(recipient);
            parameters.CallsTo(x => x.RecipientId).Returns(recipientId);
            parameters.CallsTo(x => x.RecipientScreenName).Returns(recipientScreenName);

            _fakeUserQueryValidator.CallsTo(x => x.CanUserBeIdentified(recipient)).Returns(isRecipientValid);
            _fakeUserQueryValidator.CallsTo(x => x.IsUserIdValid(recipientId)).Returns(isRecipientIdValid);
            _fakeUserQueryValidator.CallsTo(x => x.IsScreenNameValid(recipientScreenName)).Returns(isRecipientScreenNameValid);
        }
Exemplo n.º 32
0
 // Publish Message
 public static async Task<IMessage> PublishMessage(IPublishMessageParameters parameters)
 {
     return await Sync.ExecuteTaskAsync(() => Message.PublishMessage(parameters));
 }
Exemplo n.º 33
0
 /// <summary>
 /// Publish a message
 /// </summary>
 public static IMessage PublishMessage(IPublishMessageParameters parameters)
 {
     return MessageController.PublishMessage(parameters);
 }
Exemplo n.º 34
0
 public Task <ITwitterResult <ICreateMessageDTO> > PublishMessageAsync(IPublishMessageParameters parameters, ITwitterRequest request)
 {
     return(_messageQueryExecutor.PublishMessageAsync(parameters, request));
 }
Exemplo n.º 35
0
 public Task <IMessage> PublishMessage(IPublishMessageParameters publishMessageParameters)
 {
     return(Client.Messages.PublishMessage(publishMessageParameters));
 }
Exemplo n.º 36
0
 public IMessage PublishMessage(IPublishMessageParameters publishMessageParameters)
 {
     return(ExecuteAuthenticatedUserOperation(() => _messageController.PublishMessage(publishMessageParameters)));
 }
Exemplo n.º 37
0
        // Publish Message
        public string GetPublishMessageQuery(IPublishMessageParameters parameters)
        {
            var messageText = parameters.Text;
            var recipient = parameters.Recipient;

            if (!_messageQueryValidator.IsMessageTextValid(messageText) || !_userQueryValidator.CanUserBeIdentified(recipient))
            {
                return null;
            }

            var identifierParameter = _userQueryParameterGenerator.GenerateIdOrScreenNameParameter(recipient);

            var query = GetPublishMessageFormattedQuery(messageText, identifierParameter);

            query += _queryParameterGenerator.GenerateAdditionalRequestParameters(parameters.FormattedCustomQueryParameters);

            return query;
        }
Exemplo n.º 38
0
        public async Task <IMessage> PublishMessage(IPublishMessageParameters parameters)
        {
            var twitterResult = await _messageRequester.PublishMessage(parameters).ConfigureAwait(false);

            return(_client.Factories.CreateMessage(twitterResult?.DataTransferObject));
        }
Exemplo n.º 39
0
 // Publish
 public async Task <IMessage> PublishMessageAsync(IPublishMessageParameters publishMessageParameters)
 {
     return(await ExecuteAuthenticatedUserOperation(() => _taskFactory.ExecuteTaskAsync(() => PublishMessage(publishMessageParameters))));
 }
Exemplo n.º 40
0
        public void Validate(IPublishMessageParameters parameters)
        {
            _messagesClientRequiredParametersValidator.Validate(parameters);

            if (parameters.Text.UTF32Length() > Limits.MESSAGE_MAX_SIZE)
            {
                throw new TwitterArgumentLimitException($"{nameof(parameters)}.{nameof(parameters.Text)}",
                                                        Limits.MESSAGE_MAX_SIZE,
                                                        nameof(Limits.MESSAGE_MAX_SIZE),
                                                        "characters");
            }

            if (parameters.QuickReplyOptions != null && parameters.QuickReplyOptions.Length > 0)
            {
                if (parameters.QuickReplyOptions.Length > Limits.MESSAGE_QUICK_REPLY_MAX_OPTIONS)
                {
                    throw new TwitterArgumentLimitException($"{nameof(parameters)}.{nameof(parameters.QuickReplyOptions)}",
                                                            Limits.MESSAGE_QUICK_REPLY_MAX_OPTIONS,
                                                            nameof(Limits.MESSAGE_QUICK_REPLY_MAX_OPTIONS),
                                                            "options");
                }

                // If one option has a description, then they all must
                //  https://developer.twitter.com/en/docs/direct-messages/quick-replies/api-reference/options
                var numberOfOptionsWithDescription = parameters.QuickReplyOptions.Count(x => !string.IsNullOrEmpty(x.Description));
                if (numberOfOptionsWithDescription > 0 && numberOfOptionsWithDescription != parameters.QuickReplyOptions.Length)
                {
                    throw new ArgumentException("If one Quick Reply Option has a description, then they all must", $"{nameof(parameters)}.{nameof(parameters.QuickReplyOptions)}");
                }

                if (numberOfOptionsWithDescription > 0 && parameters.QuickReplyOptions.Any(x => x.Description.UTF32Length() > Limits.MESSAGE_QUICK_REPLY_DESCRIPTION_MAX_LENGTH))
                {
                    throw new TwitterArgumentLimitException($"{nameof(parameters)}.{nameof(parameters.QuickReplyOptions)}.{nameof(QuickReplyOption.Description)}",
                                                            Limits.MESSAGE_QUICK_REPLY_DESCRIPTION_MAX_LENGTH,
                                                            nameof(Limits.MESSAGE_QUICK_REPLY_DESCRIPTION_MAX_LENGTH),
                                                            "characters per quick option description");
                }

                if (parameters.QuickReplyOptions.Any(x => string.IsNullOrEmpty(x.Label)))
                {
                    throw new ArgumentException("Quick Reply Option Label is a required field",
                                                $"{nameof(parameters)}{nameof(parameters.QuickReplyOptions)}.{nameof(QuickReplyOption.Label)}");
                }

                if (parameters.QuickReplyOptions.Any(x => x.Label.UTF32Length() > Limits.MESSAGE_QUICK_REPLY_LABEL_MAX_LENGTH))
                {
                    throw new TwitterArgumentLimitException($"{nameof(parameters)}.{nameof(parameters.QuickReplyOptions)}.{nameof(QuickReplyOption.Label)}",
                                                            Limits.MESSAGE_QUICK_REPLY_LABEL_MAX_LENGTH,
                                                            nameof(Limits.MESSAGE_QUICK_REPLY_LABEL_MAX_LENGTH),
                                                            "characters per quick option label");
                }

                if (parameters.QuickReplyOptions.Any(x => x.Metadata.UTF32Length() > Limits.MESSAGE_QUICK_REPLY_METADATA_MAX_LENGTH))
                {
                    throw new TwitterArgumentLimitException($"{nameof(parameters)}.{nameof(parameters.QuickReplyOptions)}",
                                                            Limits.MESSAGE_QUICK_REPLY_METADATA_MAX_LENGTH,
                                                            nameof(Limits.MESSAGE_QUICK_REPLY_METADATA_MAX_LENGTH),
                                                            "characters per quick option metadata ");
                }
            }
        }
Exemplo n.º 41
0
 public void Validate(IPublishMessageParameters parameters)
 {
     _messagesClientParametersValidator.Validate(parameters);
 }
Exemplo n.º 42
0
 // Publish Message
 public IMessageDTO PublishMessage(IPublishMessageParameters parameters)
 {
     string query = _messageQueryGenerator.GetPublishMessageQuery(parameters);
     return _twitterAccessor.ExecutePOSTQuery<IMessageDTO>(query);
 }