protected override async Task<object> InternalProcessMessageAsync(i.ten.bew.Messaging.ServiceBusMessage message) { ISerializer serializer = Root.ServiceBusInstance.GetLocalService<ISerializer>(); var inputRequest = (Payload)serializer.Deserialize(message.Data); object rv = null; object outputRequest; bool canHandleRequest = CanHandleRequest(inputRequest, out outputRequest); if (canHandleRequest) { rv = HandleRequest(outputRequest); if (rv != null) { var payload = serializer.Serialize(rv); ServiceBusMessage replyMessage = ServiceBusMessage.CreateReply(message, payload, DataFormatEnum.JSON); Root.ServiceBusInstance.SendAsync(replyMessage); } } return rv; }
protected override async Task <object> InternalProcessMessageAsync(i.ten.bew.Messaging.ServiceBusMessage message) { ISerializer serializer = Root.ServiceBusInstance.GetLocalService <ISerializer>(); object rv = null; switch (message.DataFormat) { case DataFormatEnum.BinaryNet: rv = serializer.Deserialize(message.Data); break; case DataFormatEnum.JSON: string json = System.Text.Encoding.UTF8.GetString(message.Data); if (json.IndexOf("RequestType") > 0) { rv = JsonConvert.DeserializeObject <CacheRequest>(json); } else { rv = JsonConvert.DeserializeObject <CacheResponse>(json); } break; default: throw new Exception("Unrecognized format enum."); } if (rv is CacheRequest) { CacheRequest request = (CacheRequest)rv; object outputRequest; bool canHandleRequest = CanHandleRequest(request, out outputRequest); if (canHandleRequest) { rv = HandleRequest(request); if (rv != null) { var payload = serializer.Serialize(rv); ServiceBusMessage replyMessage = ServiceBusMessage.CreateReply(message, payload, DataFormatEnum.BinaryNet); Root.ServiceBusInstance.SendAsync(replyMessage); } } } else if (rv is CacheResponse) { } else { rv = null; } return(rv); }
protected async virtual Task <object> InternalProcessMessageAsync(ServiceBusMessage message) { return(null); }
public static ServiceBusMessage CreateReply(ServiceBusMessage message, string address, byte[] data, DataFormatEnum dataFormat) { ServiceBusMessage reply = new ServiceBusMessage(address, data, dataFormat, message.Originator, message.MessageId); return(reply); }
public static ServiceBusMessage CreateReply(ServiceBusMessage message, byte[] data, DataFormatEnum dataFormat) { return(CreateReply(message, message.Address, data, dataFormat)); }