private ActionResultContextSurface ExecuteAction(ActionContext actionContext, ArgumentsContext arguments) {
            ValidateConcurrency(actionContext.Target, arguments.Digest);

            var actionResultContext = new ActionResultContext {Target = actionContext.Target, ActionContext = actionContext};
            if (ConsentHandler(actionContext.Action.IsUsable(actionContext.Target), actionResultContext, Cause.Disabled)) {
                if (ValidateParameters(actionContext, arguments.Values) && !arguments.ValidateOnly) {
                    INakedObject result = actionContext.Action.Execute(actionContext.Target, actionContext.VisibleParameters.Select(p => p.ProposedNakedObject).ToArray());
                    actionResultContext.Result = GetObjectContext(result);
                }
            }
            return actionResultContext.ToActionResultContextSurface(this, framework);
        }
        public void Execute_should_write_on_response_output_stream()
        {
            var http = new Mock<HttpContextBase>();
            var response = new Mock<HttpResponseBase>();
            var context = new ActionResultContext("test", "testcontroller", "action", http.Object);

            var result = new StringResult("value");

            http.SetupGet(ctx => ctx.Response).Returns(response.Object);

            response.Setup(rp => rp.Write("value"));

            result.Execute(context, new ControllerContext(), null);
        }
        public override void Invoke(ControllerExecutionContext executionCtx)
        {
            var result = executionCtx.InvocationResult as ActionResult;

            if (result != null)
            {
                var areaName = executionCtx.ControllerDescriptor.Area;
                var controllerName = executionCtx.ControllerDescriptor.Name;
                var actionName = executionCtx.SelectedAction.Name;

                var resultCtx = new ActionResultContext(areaName, controllerName, actionName);

                result.Execute(resultCtx, this.Services);
            }

            Proceed(executionCtx);
        }
Exemple #4
0
 /// <inheritdoc />
 public virtual Task HandleActionResult(ActionResultContext actionResultContext)
 {
     if (actionResultContext.ActionResult != null && actionResultContext.ActionResult is ViewResult)
     {
         var viewResult = actionResultContext.ActionResult as ViewResult;
         actionResultContext.Context.Response.StatusCode  = viewResult.StatusCode.Value;
         actionResultContext.Context.Response.ContentType = viewResult.ContentType; // "text/html"
         actionResultContext.Context.Response.WriteAsync(viewResult.ToHtml(actionResultContext.Context)).ConfigureAwait(false);
     }
     else
     {
         actionResultContext.Context.Response.StatusCode  = (int)System.Net.HttpStatusCode.InternalServerError;
         actionResultContext.Context.Response.ContentType = "text/html";
         actionResultContext.Context.Response.WriteAsync($"<h1 class=\"text-danger\">Error: {actionResultContext.Exception.Message}</h1>{actionResultContext.Exception.StackTrace}")
         .ConfigureAwait(false);
     }
     return(Task.CompletedTask);
 }
Exemple #5
0
 /// <inheritdoc />
 public virtual Task HandleActionResult(ActionResultContext actionResultContext)
 {
     if (actionResultContext.ActionResult != null && actionResultContext.ActionResult is ObjectResult)
     {
         var objectResult = actionResultContext.ActionResult as ObjectResult;
         actionResultContext.Context.Response.StatusCode  = objectResult.StatusCode.Value;
         actionResultContext.Context.Response.ContentType = "application/json";
         actionResultContext.Context.Response.WriteAsync(JsonConvert.SerializeObject(objectResult.Value));
     }
     else
     {
         actionResultContext.Context.Response.StatusCode  = (int)System.Net.HttpStatusCode.InternalServerError;
         actionResultContext.Context.Response.ContentType = "application/json";
         actionResultContext.Context.Response.WriteAsync(JsonConvert.SerializeObject(new
         {
             Message    = actionResultContext.Exception.Message,
             StackTrace = actionResultContext.Exception.StackTrace
         })).ConfigureAwait(false);
     }
     return(Task.CompletedTask);
 }
Exemple #6
0
 public abstract void Execute(ActionResultContext context, IMonoRailServices services);
 public override void Execute(ActionResultContext context, ControllerContext ctx, IMonoRailServices services)
 {
     executed = true;
 }
 public override void Execute(ActionResultContext context, ControllerContext ctx, IMonoRailServices services)
 {
     executed = true;
 }