/// <summary>
        /// Applies the builder conventions to the specified controller action.
        /// </summary>
        /// <param name="actionDescriptor">The <see cref="HttpActionDescriptor">action descriptor</see>
        /// to apply the conventions to.</param>
        public void ApplyTo(HttpActionDescriptor actionDescriptor)
        {
            Arg.NotNull(actionDescriptor, nameof(actionDescriptor));

            mappedVersions.UnionWith(from provider in actionDescriptor.GetCustomAttributes <IApiVersionProvider>()
                                     where !provider.AdvertiseOnly && !provider.Deprecated
                                     from version in provider.Versions
                                     select version);

            var noVersions = Enumerable.Empty <ApiVersion>();
            var model      = new ApiVersionModel(
                apiVersionNeutral: false,
                supported: mappedVersions,
                deprecated: noVersions,
                advertised: noVersions,
                deprecatedAdvertised: noVersions);

            actionDescriptor.SetApiVersionModel(model);
        }