Ejemplo n.º 1
0
        protected virtual string Serialize <T>(T obj, string callbackName = null)
        {
            var    packer = (IMessagePacker)ServiceProvider.GetService(typeof(IMessagePacker));
            string content;

            if (obj != null)
            {
                if (Helper.IsComplexType(obj.GetType()))
                {
                    var serializer = (IContentSerializer)ServiceProvider.GetService(typeof(IContentSerializer));
                    content = serializer.Serialize(obj);
                }
                else
                {
                    content = obj.ToString();
                }
            }
            else
            {
                content = string.Empty;
            }

            var message = new CapMessageDto(content)
            {
                CallbackName = callbackName
            };

            return(packer.Pack(message));
        }
Ejemplo n.º 2
0
        protected virtual string Serialize <T>(T obj, string callbackName = null)
        {
            string content;

            if (obj != null)
            {
                content = Helper.IsComplexType(obj.GetType())
                    ? _serializer.Serialize(obj)
                    : obj.ToString();
            }
            else
            {
                content = string.Empty;
            }
            var message = new CapMessageDto(content)
            {
                CallbackName = callbackName
            };

            return(_msgPacker.Pack(message));
        }
Ejemplo n.º 3
0
        public void CanSerialize()
        {
            //Arrange
            var fixtrue = Create();

            var message = new CapMessageDto
            {
                Id           = "1",
                Content      = "Content",
                CallbackName = "Callback",
                Timestamp    = DateTime.Now
            };

            //Act
            var ret = fixtrue.Serialize(message);

            //Assert
            var expected = JsonConvert.SerializeObject(message);

            Assert.NotNull(ret);
            Assert.Equal(expected, ret);
        }
        public async Task SendAsync(string messageId, string topicName, object bodyObj)
        {
            string body;

            if (bodyObj != null && Helper.IsComplexType(bodyObj.GetType()))
            {
                body = _contentSerializer.Serialize(bodyObj);
            }
            else
            {
                body = bodyObj?.ToString();
            }

            _logger.LogDebug($"Callback message will publishing, name:{topicName},content:{body}");

            var callbackMessage = new CapMessageDto
            {
                Id      = messageId,
                Content = body
            };

            var content = _messagePacker.Pack(callbackMessage);

            var publishedMessage = new CapPublishedMessage
            {
                Id         = SnowflakeId.Default().NextId(),
                Name       = topicName,
                Content    = content,
                StatusName = StatusName.Scheduled
            };

            using (var scope = _serviceProvider.CreateScope())
            {
                var provider          = scope.ServiceProvider;
                var callbackPublisher = provider.GetService <ICallbackPublisher>();
                await callbackPublisher.PublishCallbackAsync(publishedMessage);
            }
        }
Ejemplo n.º 5
0
        public void CanDeSerialize()
        {
            //Arrange
            var fixtrue = Create();

            var message = new CapMessageDto
            {
                Id           = "1",
                Content      = "Content",
                CallbackName = "Callback",
                Timestamp    = DateTime.Now
            };
            var messageJson = JsonConvert.SerializeObject(message);

            //Act
            var ret = fixtrue.DeSerialize <CapMessageDto>(messageJson);

            //Assert
            Assert.NotNull(ret);
            Assert.Equal(message.Id, ret.Id);
            Assert.Equal(message.Content, ret.Content);
            Assert.Equal(message.CallbackName, ret.CallbackName);
            Assert.Equal(message.Timestamp, ret.Timestamp);
        }