예제 #1
0
        public MqRequestContext(IResolver resolver, IMessage message)
        {
            this.Resolver    = resolver;
            this.Message     = message;
            this.ContentType = this.ResponseContentType = Common.Web.ContentType.Json;
            if (message.Body != null)
            {
                this.PathInfo = "/json/oneway/" + OperationName;
            }

            this.Request  = new MqRequest(this);
            this.Response = new MqResponse(this);
        }
예제 #2
0
        public string RenderToHtml(RazorPage razorPage, out IRazorView razorView, object model = null, string layout = null)
        {
            if (razorPage == null)
                throw new ArgumentNullException("razorPage");

            var mqContext = new MqRequestContext();

            var httpReq = new MqRequest(mqContext);
            if (layout != null)
            {
                httpReq.Items[RazorPageResolver.LayoutKey] = layout;
            }

            var httpRes = new MqResponse(mqContext);

            razorView = PageResolver.ResolveAndExecuteRazorPage(
                httpReq: httpReq,
                httpRes: httpRes,
                model: model,
                razorPage: razorPage);

            var ms = (MemoryStream)httpRes.OutputStream;
            return ms.ToArray().FromUtf8Bytes();
        }