/// <inheritdoc />
        public virtual void OnProvidersExecuted(ApplicationModelProviderContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var implicitVersionModel = new ApiVersionModel(Options.DefaultApiVersion);
            var conventionBuilder    = Options.Conventions;
            var application          = context.Result;
            var controllers          = application.Controllers;

            if (Options.UseApiBehavior)
            {
                controllers = ControllerFilter.Apply(controllers);
            }

            for (var i = 0; i < controllers.Count; i++)
            {
                var controller = controllers[i];

                controller.ControllerName = TrimTrailingNumbers(controller.ControllerName);

                if (!conventionBuilder.ApplyTo(controller))
                {
                    ApplyAttributeOrImplicitConventions(controller, implicitVersionModel);
                }
            }
        }
        /// <inheritdoc />
        public virtual void OnProvidersExecuted(ApplicationModelProviderContext context)
        {
            Arg.NotNull(context, nameof(context));

            var implicitVersionModel = new ApiVersionModel(Options.DefaultApiVersion);
            var conventionBuilder    = Options.Conventions;
            var application          = context.Result;
            var controllers          = application.Controllers;

            if (Options.UseApiBehavior)
            {
                controllers = ControllerFilter.Apply(controllers);
            }

            foreach (var controller in controllers)
            {
                if (!conventionBuilder.ApplyTo(controller))
                {
                    ApplyAttributeOrImplicitConventions(controller, implicitVersionModel);
                }
            }
        }