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)); }
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)); }
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); } }
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); }