Пример #1
0
        /// <summary>
        /// Persists the request into the registered message queue if configured,
        /// otherwise calls Execute() to handle the request immediately.
        /// </summary>
        /// <param name="request"></param>
        public override object ExecuteAsync(TRequest request)
        {
            if (MessageFactory == null)
            {
                return(Execute(request));
            }

            //Capture and persist this async request on this Services 'In Queue'
            //for execution after this request has been completed
            using (var producer = MessageFactory.CreateMessageProducer())
            {
                producer.Publish(request);
            }

            return(DtoUtils.CreateResponseDto(request));
        }