internal static AsyncManager GetAsyncManager(ControllerBase controller) { IAsyncManagerContainer container = (controller as IAsyncManagerContainer); Precondition.Require(container, () => Error .ControllerMustImplementAsyncManagerContainer(controller.GetType())); return(container.AsyncManager); }
internal static AsyncManager GetAsyncManager(ControllerBase controller) { IAsyncManagerContainer helperContainer = controller as IAsyncManagerContainer; if (helperContainer == null) { throw Error.AsyncCommon_ControllerMustImplementIAsyncManagerContainer(controller.GetType()); } return(helperContainer.AsyncManager); }
public void OnExecuting(ActionExecutionContext context) { Precondition.Require(context, () => Error.ArgumentNull("context")); IAsyncManagerContainer container = (context.Context.Controller as IAsyncManagerContainer); Precondition.Require(container, () => Error.ControllerMustImplementAsyncManagerContainer( context.Context.Controller.GetType())); container.AsyncManager.Timeout = Duration; }
internal static AsyncManager GetAsyncManager(ControllerBase controller) { IAsyncManagerContainer helperContainer = controller as IAsyncManagerContainer; if (helperContainer == null) { throw new InvalidOperationException(String.Format( CultureInfo.CurrentUICulture, MvcResources.AsyncCommon_ControllerMustImplementIAsyncManagerContainer, controller.GetType())); } return(helperContainer.AsyncManager); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext == null) { throw new ArgumentNullException("filterContext"); } IAsyncManagerContainer container = filterContext.Controller as IAsyncManagerContainer; if (container != null) { AsyncManager asyncManager = container.AsyncManager; foreach (var entry in filterContext.ActionParameters) { asyncManager.Parameters[entry.Key] = entry.Value; } } }
public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext == null) { throw new ArgumentNullException("filterContext"); } IAsyncManagerContainer container = filterContext.Controller as IAsyncManagerContainer; if (container == null) { throw Error.AsyncCommon_ControllerMustImplementIAsyncManagerContainer(filterContext.Controller.GetType()); } container.AsyncManager.Timeout = Duration; base.OnActionExecuting(filterContext); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext == null) { throw new ArgumentNullException("filterContext"); } IAsyncManagerContainer helperContainer = filterContext.Controller as IAsyncManagerContainer; if (helperContainer == null) { string message = String.Format(CultureInfo.CurrentUICulture, MvcResources.AsyncCommon_ControllerMustImplementIAsyncManagerContainer, filterContext.Controller.GetType()); throw new InvalidOperationException(message); } helperContainer.AsyncManager.Timeout = Duration; base.OnActionExecuting(filterContext); }
public override IAsyncResult BeginExecute(ControllerContext controllerContext, IDictionary <string, object> parameters, AsyncCallback callback, object state) { if (controllerContext == null) { throw new ArgumentNullException("controllerContext"); } if (parameters == null) { throw new ArgumentNullException("parameters"); } ParameterInfo[] parameterInfos = BeginMethod.GetParameters(); IEnumerable <object> rawParameterValues = from parameterInfo in parameterInfos select ExtractParameterFromDictionary(parameterInfo, parameters, BeginMethod); List <object> parametersList = rawParameterValues.Take(parameterInfos.Length - 2).ToList(); MethodDispatcher beginDispatcher = DispatcherCache.GetDispatcher(BeginMethod); MethodDispatcher endDispatcher = DispatcherCache.GetDispatcher(EndMethod); // need to add callback + state object to list BeginInvokeCallback beginCallback = (innerCallback, innerState) => { parametersList.Add(innerCallback); parametersList.Add(innerState); object[] parametersArray = parametersList.ToArray(); IAsyncResult innerAsyncResult = (IAsyncResult)beginDispatcher.Execute(controllerContext.Controller, parametersArray); return(innerAsyncResult); }; AsyncCallback <object> endCallback = ar => { object actionReturnValue = endDispatcher.Execute(controllerContext.Controller, new object[] { ar }); return(actionReturnValue); }; // Set the timeout and go IAsyncManagerContainer helperContainer = controllerContext.Controller as IAsyncManagerContainer; int timeout = (helperContainer != null) ? helperContainer.AsyncManager.Timeout : Timeout.Infinite; return(AsyncResultWrapper.WrapWithTimeout(callback, state, beginCallback, endCallback, timeout, _executeTag)); }