public HttpRequestMessage Build(IMessageBuilder messageBuilder)
        {
            var message = messageBuilder.Build();
            var request = new HttpRequestMessage(message.Method, message.RequestUri);
            var body    = string.Empty;

            if ((message.Method == HttpMethod.Post || message.Method == HttpMethod.Post) &&
                !string.IsNullOrEmpty(message.Content))
            {
                body            = message.Content;
                request.Content = new StringContent(body);
            }

            var timestamp = Timestamp;
            var nonce     = Nonce;

            var url       = new Uri(Configuration.ApiUrl, request.RequestUri);
            var signature = _signer.Sign(_secret, request.Method.Method, url.ToString(), body, nonce, timestamp);

            request.Headers.TryAddWithoutValidation("Authorization", _clientKey + ':' + signature);
            request.Headers.Add("X-Auth-Timestamp", timestamp);
            request.Headers.Add("X-Auth-Nonce", nonce);
            request.Headers.TryAddWithoutValidation("Content-Type", "application/json");
            return(request);
        }
Exemplo n.º 2
0
        public async Task HandleAsync(DbSms sms, CancellationToken token = default)
        {
            _logger.Debug("Try to build message. Sms {@Sms}", sms);
            var message = await _messageBuilder.Build(sms, _routeConfiguration.Body, token);

            _logger.Debug("Try to send message. Message {@Message}", message);
            await _messageHttpService.SendSms(_routeConfiguration, message, token);
        }
Exemplo n.º 3
0
        public JObject GetGelfJson(LogEvent logEvent)
        {
            IMessageBuilder builder = logEvent.Exception != null
                ? _messageBuilders[BuilderType.Exception].Value
                : _messageBuilders[BuilderType.Message].Value;

            return(builder.Build(logEvent));
        }
Exemplo n.º 4
0
		private async Task<HttpResponseMessage> SendAsync(IMessageBuilder messageBuilder)
		{
			if (messageBuilder == null)
				throw new ArgumentNullException("messageBuilder");

			var message = messageBuilder.Build();
			var request = new HttpRequestMessage(message.Method, message.RequestUri);
			return await CreateClient().SendAsync(request).ConfigureAwait(false);
		}
Exemplo n.º 5
0
        public async Task SendPeriodically(TimeSpan period, CancellationToken cancelToken)
        {
            while (!cancelToken.IsCancellationRequested)
            {
                await Task.Delay(period, cancelToken);

                var message = _messageBuilder.Build(SenderName);

                await PostToReceiver(message, cancelToken);
            }
        }
Exemplo n.º 6
0
        private async Task <HttpResponseMessage> SendAsync(IMessageBuilder messageBuilder)
        {
            if (messageBuilder == null)
            {
                throw new ArgumentNullException("messageBuilder");
            }

            var message = messageBuilder.Build();
            var request = new HttpRequestMessage(message.Method, message.RequestUri);

            return(await CreateClient().SendAsync(request).ConfigureAwait(false));
        }
Exemplo n.º 7
0
        public SendResult SendMessageSync(IMessageBuilder builder)
        {
            var message = builder.Build();

            if (message.Handle == IntPtr.Zero)
            {
                throw new ArgumentException(nameof(builder));
            }

            var result = ProducerWrap.SendMessageSync(this.Handle, message, out var sendResult);

            return(result == 0
                ? new SendResult {
                SendStatus = sendResult.sendStatus,
                Offset = sendResult.offset,
                MessageId = sendResult.msgId
            }
                : null);
        }
Exemplo n.º 8
0
        public SendResult SendMessageOneway(IMessageBuilder builder)
        {
            var message = builder.Build();

            if (message.Handle == IntPtr.Zero)
            {
                throw new ArgumentException(nameof(builder));
            }

            var result = ProducerWrap.SendMessageOneway(this.Handle, message);

            return(result == 0
                ? new SendResult {
                SendStatus = result,
                Offset = 0,
                MessageId = string.Empty
            }
                : null);
        }
Exemplo n.º 9
0
        public SendResult SendMessageOrderly(IMessageBuilder builder, QueueSelectorCallback callback, int autoRetryTimes = 0, string args = "")
        {
            var message = builder.Build();

            if (message.Handle == IntPtr.Zero)
            {
                throw new ArgumentException(nameof(builder));
            }

            var argsPtr = Marshal.StringToBSTR(args);
            var result  = ProducerWrap.SendMessageOrderly(this.Handle, message, callback, argsPtr, autoRetryTimes, out var sendResult);

            return(result == 0
                ? new SendResult {
                SendStatus = sendResult.sendStatus,
                Offset = sendResult.offset,
                MessageId = sendResult.msgId
            }
                : null);
        }
        public HttpRequestMessage Build(IMessageBuilder messageBuilder)
        {
            var message = messageBuilder.Build();
            var request = new HttpRequestMessage(message.Method, message.RequestUri);
            var body = string.Empty;
            if((message.Method == HttpMethod.Post || message.Method == HttpMethod.Post)
                && !string.IsNullOrEmpty(message.Content))
            {
                body = message.Content;
                request.Content = new StringContent(body);
            }

            var timestamp = Timestamp;
            var nonce = Nonce;

            var url = new Uri(Configuration.ApiUrl, request.RequestUri);
            var signature = _signer.Sign(_secret, request.Method.Method, url.ToString(), body, nonce, timestamp);

            request.Headers.TryAddWithoutValidation("Authorization", _clientKey + ':' + signature);
            request.Headers.Add("X-Auth-Timestamp", timestamp);
            request.Headers.Add("X-Auth-Nonce", nonce);
            request.Headers.TryAddWithoutValidation("Content-Type", "application/json");
            return request;
        }
Exemplo n.º 11
0
 /// <summary>
 /// 异步发送群消息
 /// </summary>
 /// <exception cref="BotMutedException"/>
 /// <param name="builder">构建完毕的 <see cref="IMessageBuilder"/></param>
 /// <inheritdoc cref="CommonSendMessageAsync"/>
 public Task <int> SendGroupMessageAsync(long groupNumber, IMessageBuilder builder, int?quoteMsgId = null)
 {
     return(CommonSendMessageAsync("sendGroupMessage", null, groupNumber, builder.Build(), quoteMsgId));
 }
Exemplo n.º 12
0
 /// <summary>
 /// 异步发送好友消息
 /// </summary>
 /// <param name="builder">构建完毕的 <see cref="IMessageBuilder"/></param>
 /// <inheritdoc cref="CommonSendMessageAsync"/>
 public Task <int> SendFriendMessageAsync(long qqNumber, IMessageBuilder builder, int?quoteMsgId = null)
 {
     return(CommonSendMessageAsync("sendFriendMessage", qqNumber, null, builder.Build(), quoteMsgId));
 }