/// <summary> /// Executes the precondition and returns the result. /// </summary> /// <param name="request">The request.</param> /// <param name="defaultResult">The default result.</param> /// <param name="localInformation">The local information.</param> /// <returns>PreconditionResult.</returns> public PreconditionResult GetResult(HttpRequest request, PreconditionResult defaultResult, IPreconditionInformation localInformation) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (defaultResult == null) { throw new ArgumentNullException(nameof(defaultResult)); } if (localInformation == null) { throw new ArgumentNullException(nameof(localInformation)); } if (HttpPreconditionBuilder.IsMutatingMethod(request.Method)) { return(this.GetResultForMutating(request, defaultResult, localInformation)); } else { return(this.GetResultForNonMutating(request, defaultResult, localInformation)); } }
private PreconditionResult ExecutePrecondition(ActionContext actionContext, IPreconditionInformation information) { var preconditionBuilder = new HttpPreconditionBuilder(actionContext.HttpContext); var getResult = preconditionBuilder.BuildPrecondition(actionContext.HttpContext.Request, this.ActionOptions.MissingPreconditionResult); this.Log(TraceEventType.Verbose, "Executing precondition."); return(getResult(information)); }