/// <summary> /// Adds OData model-based authorization services /// </summary> /// <param name="odataBuilder"></param> /// <param name="configureODataAuth">Action to configure the authorization options</param> /// <returns></returns> public static IODataBuilder AddAuthorization(this IODataBuilder odataBuilder, Action <ODataAuthorizationOptions> configureODataAuth) { Contract.Assert(odataBuilder != null); odataBuilder.Services.AddODataAuthorization(configureODataAuth); return(odataBuilder); }
/// <summary> /// Adds OData model-based authorization services /// </summary> /// <param name="odataBuilder"></param> /// <returns></returns> public static IODataBuilder AddAuthorization(this IODataBuilder odataBuilder) { Contract.Assert(odataBuilder != null); odataBuilder.Services.AddODataAuthorization(); return(odataBuilder); }
/// <summary> /// Configures Newtonsoft.Json using OData Json converter. /// </summary> /// <param name="builder">The OData builder.</param> /// <param name="setupAction">Callback to configure <see cref="MvcNewtonsoftJsonOptions"/>.</param> /// <param name="mapperProvider">The property mapper provider.</param> /// <returns>The <see cref="IODataBuilder"/>.</returns> public static IODataBuilder AddNewtonsoftJson(this IODataBuilder builder, Action <MvcNewtonsoftJsonOptions> setupAction, Func <IEdmModel, IEdmStructuredType, IPropertyMapper> mapperProvider) { if (builder is null) { throw new ArgumentNullException(nameof(builder)); } if (setupAction is null) { throw new ArgumentNullException(nameof(setupAction)); } Action <MvcNewtonsoftJsonOptions> odataSetupAction = opt => { setupAction(opt); if (mapperProvider is null) { opt.SerializerSettings.Converters.Add(new JSelectExpandWrapperConverter()); } else { opt.SerializerSettings.Converters.Add(new JSelectExpandWrapperConverter(mapperProvider)); } opt.SerializerSettings.Converters.Add(new JDynamicTypeWrapperConverter()); opt.SerializerSettings.Converters.Add(new JPageResultValueConverter()); opt.SerializerSettings.Converters.Add(new JSingleResultValueConverter()); }; builder.Services.AddControllers().AddNewtonsoftJson(odataSetupAction); return(builder); }
/// <summary> /// Enables service API versioning for the specified OData configuration. /// </summary> /// <param name="builder">The <see cref="IODataBuilder">OData builder</see> available in the application.</param> /// <returns>The original <paramref name="builder"/> object.</returns> public static IODataBuilder EnableApiVersioning(this IODataBuilder builder) { Arg.NotNull(builder, nameof(builder)); Contract.Ensures(Contract.Result <IODataBuilder>() != null); AddODataServices(builder.Services); return(builder); }
/// <summary> /// Enables service API versioning for the specified OData configuration. /// </summary> /// <param name="builder">The <see cref="IODataBuilder">OData builder</see> available in the application.</param> /// <returns>The original <paramref name="builder"/> object.</returns> public static IODataBuilder EnableApiVersioning(this IODataBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } AddODataServices(builder.Services); return(builder); }
/// <summary> /// Adds the odata formatter related services. /// </summary> /// <param name="builder">The OData builder.</param> /// <returns>The IODataBuilder itself.</returns> public static IODataBuilder AddODataFormatter(this IODataBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } AddODataFormatterServices(builder.Services); return(builder); }
/// <summary> /// /// </summary> /// <param name="builder"></param> /// <param name="setupAction"></param> /// <returns></returns> public static IODataBuilder AddODataRouting(this IODataBuilder builder, Action <ODataRoutingOptions> setupAction) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } AddODataRoutingServices(builder.Services); builder.Services.Configure(setupAction); return(builder); }
/// <summary> /// Enables service API versioning for the specified OData configuration. /// </summary> /// <param name="builder">The <see cref="IODataBuilder">OData builder</see> available in the application.</param> /// <param name="setupAction">An <see cref="Action{T}">action</see> used to configure the provided options.</param> /// <returns>The original <paramref name="builder"/> object.</returns> public static IODataBuilder EnableApiVersioning(this IODataBuilder builder, Action <ODataApiVersioningOptions> setupAction) { Arg.NotNull(builder, nameof(builder)); Arg.NotNull(setupAction, nameof(setupAction)); Contract.Ensures(Contract.Result <IODataBuilder>() != null); var services = builder.Services; AddODataServices(services); services.Configure(setupAction); return(builder); }
/// <summary> /// Adds OData routing convention. /// </summary> /// <typeparam name="T">The routing convention type.</typeparam> /// <param name="builder">The OData service builder.</param> /// <returns>The <see cref="IODataBuilder"/> so that additional calls can be chained.</returns> public static IODataBuilder AddConvention <T>(this IODataBuilder builder) where T : class, IODataControllerActionConvention { if (builder == null) { throw Error.ArgumentNull(nameof(builder)); } builder.Services.TryAddEnumerable( ServiceDescriptor.Transient <IODataControllerActionConvention, T>()); return(builder); }
/// <summary> /// Adds services required for OData requests. /// </summary> /// <param name="services">The <see cref="IServiceCollection"/> to add the services to.</param> /// <param name="setupAction">The OData options to configure the services with.</param> /// <returns>The <see cref="IODataBuilder"/> so that additional calls can be chained.</returns> public static IODataBuilder AddOData(this IServiceCollection services, Action <ODataOptions> setupAction) { if (setupAction == null) { throw Error.ArgumentNull(nameof(setupAction)); } IODataBuilder builder = services.AddODataCore(); services.Configure(setupAction); return(builder); }
/// <summary> /// Enables service API versioning for the specified OData configuration. /// </summary> /// <param name="builder">The <see cref="IODataBuilder">OData builder</see> available in the application.</param> /// <param name="setupAction">An <see cref="Action{T}">action</see> used to configure the provided options.</param> /// <returns>The original <paramref name="builder"/> object.</returns> public static IODataBuilder EnableApiVersioning(this IODataBuilder builder, Action <ODataApiVersioningOptions> setupAction) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } var services = builder.Services; AddODataServices(services); services.Configure(setupAction); return(builder); }
/// <summary> /// Configures Newtonsoft.Json using OData Json converter. /// </summary> /// <param name="builder">The OData builder.</param> /// <param name="setupAction">Callback to configure <see cref="MvcNewtonsoftJsonOptions"/>.</param> /// <returns>The <see cref="IODataBuilder"/>.</returns> public static IODataBuilder AddNewtonsoftJson(this IODataBuilder builder, Action <MvcNewtonsoftJsonOptions> setupAction) { return(builder.AddNewtonsoftJson(setupAction, null)); }
/// <summary> /// Configures Newtonsoft.Json using OData Json converter. /// </summary> /// <param name="builder">The OData builder.</param> /// <returns>The <see cref="IODataBuilder"/>.</returns> public static IODataBuilder AddNewtonsoftJson(this IODataBuilder builder) { return(builder.AddNewtonsoftJson(opt => { })); }