Ejemplo n.º 1
0
        /// <summary>
        /// Execute MQ with requestContext
        /// </summary>
        public object ExecuteMessage(IMessage dto, IRequest req)
        {
            req.Dto = appHost.ApplyRequestConverters(req, dto.Body);
            if (appHost.ApplyMessageRequestFilters(req, req.Response, dto.Body))
            {
                return(req.Response.Dto);
            }

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

            var taskResponse = response as Task;

            if (taskResponse != null)
            {
                response = taskResponse.GetResult();
            }

            response = appHost.ApplyResponseConverters(req, response);

            if (appHost.ApplyMessageResponseFilters(req, req.Response, response))
            {
                response = req.Response.Dto;
            }

            req.Response.EndMqRequest();

            return(response);
        }
        /// <summary>
        /// Execute MQ with requestContext
        /// </summary>
        public object ExecuteMessage(IMessage message, IRequest req)
        {
            RequestContext.Instance.StartRequestContext();

            req.PopulateFromRequestIfHasSessionId(message.Body);

            req.Dto = AppHost.ApplyRequestConvertersAsync(req, message.Body).Result;
            if (AppHost.ApplyMessageRequestFilters(req, req.Response, message.Body))
            {
                return(req.Response.Dto);
            }

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

            if (response is Task taskResponse)
            {
                response = taskResponse.GetResult();
            }

            response = AppHost.ApplyResponseConvertersAsync(req, response).Result;

            if (AppHost.ApplyMessageResponseFilters(req, req.Response, response))
            {
                response = req.Response.Dto;
            }

            req.Response.EndMqRequest();

            return(response);
        }