public static async Task Handler(ControllerActionContext controllerActionContext)
        {
            var           serv       = controllerActionContext.UpdateContext.Services;
            var           factory    = serv.GetRequiredService <IControllersFactory>();
            BotController controller = factory.Create(controllerActionContext);
            //Invoke initializer.
            await BotController.InvokeInitialize(controller, controllerActionContext);

            var methodInfo = controllerActionContext.ActionDescriptor.MethodInfo;

            //Model binding.
            var modelBindingContext = new ModelBindingContext(controllerActionContext);
            var mainModelBinder     = serv
                                      .GetRequiredService <IMainModelBinderProvider>().MainModelBinder;
            await mainModelBinder.Bind(modelBindingContext);

            controllerActionContext.IsModelStateValid = modelBindingContext.IsAllBinded();
            var invokationParams = modelBindingContext.ToMethodParameters();

            //Invoke.
            var methodResult = methodInfo.Invoke(controller, invokationParams);

            if (methodResult is Task task)
            {
                await task;
            }

            //Invoke finished.
            await BotController.InvokeProcessed(controller);
        }