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); }
/// <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); }
/// <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); }
public abstract void Execute(ActionResultContext context, IMonoRailServices services);
public override void Execute(ActionResultContext context, ControllerContext ctx, IMonoRailServices services) { executed = true; }