/// <summary> /// Perform json encoding /// </summary> /// <param name="message"></param> /// <returns></returns> public IEnumerable <NetworkMessageModel> EncodeAsJson(DataSetMessageModel message) { foreach (var networkMessage in GetNetworkMessages(message.YieldReturn())) { using (var writer = new StringWriter()) { using (var encoder = new JsonEncoderEx(writer, message.ServiceMessageContext) { UseAdvancedEncoding = true, UseUriEncoding = true, UseReversibleEncoding = false }) { networkMessage.Encode(encoder); } var json = writer.ToString(); var encoded = new NetworkMessageModel { Body = Encoding.UTF8.GetBytes(json), ContentEncoding = "utf-8", Timestamp = DateTime.UtcNow, ContentType = ContentMimeType.Json, MessageId = message.SequenceNumber.ToString(), MessageSchema = MessageSchemaTypes.NetworkMessageJson }; yield return(encoded); } } }
/// <summary> /// Perform uadp encoding /// </summary> /// <param name="message"></param> /// <returns></returns> public IEnumerable <NetworkMessageModel> EncodeAsUadp(DataSetMessageModel message) { foreach (var networkMessage in GetNetworkMessages(message.YieldReturn())) { using (var encoder = new BinaryEncoder(message.ServiceMessageContext)) { networkMessage.Encode(encoder); var encoded = new NetworkMessageModel { Body = encoder.CloseAndReturnBuffer(), Timestamp = DateTime.UtcNow, ContentType = ContentMimeType.Uadp, MessageId = message.SequenceNumber.ToString(), MessageSchema = MessageSchemaTypes.NetworkMessageUadp }; yield return(encoded); } } }