/// <summary> /// Invoked in <see cref="MvcMiddleware"/> /// </summary> public void Init( MainRouter mainRouter, IOuterMiddlewaresInformer outerMiddlewaresInformer, IMvcFeatures mvcFeatures, MainModelBinder mainModelBinder ) { MainRouter = mainRouter; OuterMiddlewaresInformer = outerMiddlewaresInformer; MvcFeatures = mvcFeatures; MainModelBinder = mainModelBinder; }
/// <summary> /// Invoked automatically in mvc middleware. /// </summary> public static void AddBotExtMvcGlobalValidator(this IPipelineBuilder @this, int botExtOrder, Action <UpdateContext> setGlobalSearchBag) { IOuterMiddlewaresInformer outerMiddlewaresInformer = null; @this.AddBotExtGlobalValidator(async(newCtx, origCtx) => { setGlobalSearchBag(newCtx); if (outerMiddlewaresInformer == null) { var provider = origCtx.Services.GetRequiredService <IOuterMiddlewaresInformerProvider>(); outerMiddlewaresInformer = provider.OuterMiddlewaresInformer; } var mvcWillHandle = await outerMiddlewaresInformer.CheckMvcHasPriorityHandler(newCtx, botExtOrder); return(mvcWillHandle ? UpdateValidatorResult.AbortWaiter : UpdateValidatorResult.Valid); }); }