public static ValidationResult <EditMessageText> CreateValidation(this EditMessageText value) =>
 new ValidationResult <EditMessageText>(value)
 .IsTrue(x => (x.ChatId == null || !x.ChatId.HasValue) && x.MessageId == null && string.IsNullOrEmpty(x.InlineMessageId),
         ValidationErrors.InlineMessageIdChatIdMessageIdRequiredOr)
 .IsTrue(x => x.ChatId != null && x.ChatId.HasValue && x.MessageId != null && !string.IsNullOrEmpty(x.InlineMessageId),
         ValidationErrors.InlineMessageIdOrChatIdAndMessageId)
 .IsTrue(x => (x.ChatId == null || !x.ChatId.HasValue) && x.MessageId != null && !string.IsNullOrEmpty(x.InlineMessageId),
         ValidationErrors.InlineMessageIdOrChatIdAndMessageId)
 .IsTrue(x => x.ChatId != null && x.ChatId.HasValue && x.MessageId == null && !string.IsNullOrEmpty(x.InlineMessageId),
         ValidationErrors.InlineMessageIdOrChatIdAndMessageId)
 // todo ValidationErrorsExtension needs to decide if its a PropertyExpression and TypedParameterExpression because
 // the erroring Property would always be Length instead of Text
 .IsTrue(x => x.Text != null && x.Text.Length > 4096, ValidationErrors.TextTooLong);
Ejemplo n.º 2
0
        public async Task EditMessageText(EditMessageText message)
        {
            var httpContent = new StringContent(JsonConvert.SerializeObject(message, _ignoreNullSerializer),
                                                Encoding.UTF8,
                                                "application/json");
            var responseMessage =
                await _httpClient.PostAsync($"{_httpClient.BaseAddress}{_settings.BotKey}/editMessageText", httpContent);

            var responseContent = await responseMessage.Content.ReadAsStringAsync();

            if (!responseMessage.IsSuccessStatusCode)
            {
                // todo: how to handle errors?
                _logger.LogError($"Failed {responseMessage.StatusCode} - {responseContent}");
            }
        }