示例#1
0
        private TestDotvvmRequestContext PrepareRequest(
            string fileName,
            PostbackRequestModel postback = null
            )
        {
            var context = DotvvmTestHelper.CreateContext(configuration);

            context.CsrfToken = null;
            context.Route     = new Framework.Routing.DotvvmRoute(
                "testpage",
                fileName,
                null,
                null,
                configuration);
            var httpContext = (TestHttpContext)context.HttpContext;

            if (postback is object)
            {
                httpContext.Request.Method = "POST";
                httpContext.Request.Headers["X-DotVVM-PostBack"] = new[] { "true" };
                httpContext.Request.Body = new MemoryStream(
                    new UTF8Encoding(false).GetBytes(
                        JsonConvert.SerializeObject(postback)
                        )
                    );
            }

            return(context);
        }
示例#2
0
        public async Task <CommandRunResult> RunCommand(
            string filePath,
            PostbackRequestModel model)
        {
            var request = PrepareRequest(filePath, model);
            await presenter.ProcessRequest(request);

            return(CreateCommandResult(request));
        }