コード例 #1
0
        /// <summary>
        /// Execute MQ with requestContext
        /// </summary>
        public object ExecuteMessage(IMessage dto, IRequest req)
        {
            req.Dto = dto.Body;
            if (HostContext.ApplyMessageRequestFilters(req, req.Response, dto.Body))
            {
                return(req.Response.Dto);
            }

            var response = Execute(dto.Body, req);

            var taskResponse = response as Task;

            if (taskResponse != null)
            {
                //Ensure messages are executed synchronously
                taskResponse.Wait();
                response = taskResponse.GetResult();
            }

            if (HostContext.ApplyMessageResponseFilters(req, req.Response, response))
            {
                return(req.Response.Dto);
            }

            return(response);
        }
コード例 #2
0
        /// <summary>
        /// Execute MQ with requestContext
        /// </summary>
        public object ExecuteMessage <T>(IMessage <T> dto, IRequest req)
        {
            if (HostContext.ApplyMessageRequestFilters(req, req.Response, dto.Body))
            {
                return(req.Response.Dto);
            }

            var response = Execute(dto.Body, req);

            if (HostContext.ApplyMessageResponseFilters(req, req.Response, response))
            {
                return(req.Response.Dto);
            }

            return(response);
        }