/// <summary> /// Applies a controller convention given the specified builder and model. /// </summary> /// <param name="controller">The <see cref="IApiVersionConventionBuilder">builder</see> used to apply conventions.</param> /// <param name="controllerDescriptor">The <see cref="HttpControllerDescriptor">descriptor</see> to build conventions from.</param> /// <returns>True if any conventions were applied to the <paramref name="controllerDescriptor">descriptor</paramref>; /// otherwise, false.</returns> public virtual bool Apply(IApiVersionConventionBuilder controller, HttpControllerDescriptor controllerDescriptor) { Arg.NotNull(controller, nameof(controller)); Arg.NotNull(controllerDescriptor, nameof(controller)); var text = GetRawApiVersion(controllerDescriptor.ControllerType.Namespace); if (!ApiVersion.TryParse(text, out var apiVersion)) { return(false); } var deprecated = controllerDescriptor.GetCustomAttributes <ObsoleteAttribute>().Any(); if (deprecated) { controller.HasDeprecatedApiVersion(apiVersion); } else { controller.HasApiVersion(apiVersion); } return(true); }
private void AddApiVersionConventions(IApiVersionConventionBuilder builder) { // Version 1.0 controllers builder.Controller <ContactsController>().HasApiVersion(ApiVersion.Default); // No version controllers }
public virtual bool Apply(IApiVersionConventionBuilder controller, ControllerModel controllerModel) { this.Apply(controllerModel); return(true); }