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;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 protected async virtual Task <object> InternalProcessMessageAsync(ServiceBusMessage message)
 {
     return(null);
 }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
 public static ServiceBusMessage CreateReply(ServiceBusMessage message, byte[] data, DataFormatEnum dataFormat)
 {
     return(CreateReply(message, message.Address, data, dataFormat));
 }