public virtual void ApplyTo(HttpActionDescriptor actionDescriptor) { if (actionDescriptor == null) { throw new ArgumentNullException(nameof(actionDescriptor)); } var attributes = new List <object>(); attributes.AddRange(actionDescriptor.GetCustomAttributes <IApiVersionNeutral>(inherit: true)); attributes.AddRange(actionDescriptor.GetCustomAttributes <IApiVersionProvider>(inherit: false)); MergeAttributesWithConventions(attributes); if (VersionNeutral) { actionDescriptor.SetProperty(ApiVersionModel.Neutral); return; } ApiVersionModel?versionModel; if (MappedVersions.Count == 0) { var declaredVersions = SupportedVersions.Union(DeprecatedVersions); versionModel = new ApiVersionModel( declaredVersions, SupportedVersions, DeprecatedVersions, AdvertisedVersions, DeprecatedAdvertisedVersions); } else { var emptyVersions = Empty <ApiVersion>(); versionModel = new ApiVersionModel( declaredVersions: MappedVersions, supportedVersions: emptyVersions, deprecatedVersions: emptyVersions, advertisedVersions: emptyVersions, deprecatedAdvertisedVersions: emptyVersions); } actionDescriptor.SetProperty(versionModel); }
/// <summary> /// Applies the builder conventions to the specified controller action. /// </summary> /// <param name="actionModel">The <see cref="ActionModel">action model</see> to apply the conventions to.</param> #pragma warning disable CA1725 public virtual void ApplyTo(ActionModel actionModel) #pragma warning restore CA1725 { if (actionModel == null) { throw new ArgumentNullException(nameof(actionModel)); } MergeAttributesWithConventions(actionModel.Attributes); if (VersionNeutral) { actionModel.SetProperty(ApiVersionModel.Neutral); return; } ApiVersionModel versionModel; if (MappedVersions.Count == 0) { var declaredVersions = SupportedVersions.Union(DeprecatedVersions); versionModel = new ApiVersionModel( declaredVersions, SupportedVersions, DeprecatedVersions, AdvertisedVersions, DeprecatedAdvertisedVersions); } else { var emptyVersions = Empty <ApiVersion>(); versionModel = new ApiVersionModel( declaredVersions: MappedVersions, supportedVersions: emptyVersions, deprecatedVersions: emptyVersions, advertisedVersions: emptyVersions, deprecatedAdvertisedVersions: emptyVersions); } actionModel.SetProperty(versionModel); }
/// <summary> /// Applies the builder conventions to the specified controller action. /// </summary> /// <param name="actionModel">The <see cref="ActionModel">action model</see> to apply the conventions to.</param> public virtual void ApplyTo(ActionModel actionModel) { Arg.NotNull(actionModel, nameof(actionModel)); MergeAttributesWithConventions(actionModel.Attributes); if (VersionNeutral) { actionModel.SetProperty(ApiVersionModel.Neutral); return; } var versionModel = default(ApiVersionModel); if (MappedVersions.Count == 0) { var declaredVersions = SupportedVersions.Union(DeprecatedVersions); versionModel = new ApiVersionModel( declaredVersions, SupportedVersions, DeprecatedVersions, AdvertisedVersions, DeprecatedAdvertisedVersions); } else { var emptyVersions = Empty <ApiVersion>(); versionModel = new ApiVersionModel( declaredVersions: MappedVersions, supportedVersions: emptyVersions, deprecatedVersions: emptyVersions, advertisedVersions: emptyVersions, deprecatedAdvertisedVersions: emptyVersions); } actionModel.SetProperty(versionModel); }