/// <summary> /// Configures the <see cref="IPaymentTokenProvider"/> required by Parbad to create /// a unique token which will be used to load the payment data when the client comes /// back from the gateway. /// </summary> /// <param name="builder"></param> /// <param name="tokenBuilder">A builder to configure the <see cref="IPaymentTokenProvider"/></param> public static IParbadBuilder ConfigurePaymentToken(this IParbadBuilder builder, Action <IPaymentTokenBuilder> tokenBuilder) { tokenBuilder(new PaymentTokenBuilder(builder.Services)); return(builder); }
private static void RegisterMessagesOptions(IParbadBuilder builder) { builder.Services.AddTransient <IOptions <MessagesOptions> >(provider => { var messages = provider.GetRequiredService <IOptions <ParbadOptions> >().Value.Messages; return(new OptionsWrapper <MessagesOptions>(messages)); }); }
public static IParbadBuilder ConfigureAutoTrackingNumber(this IParbadBuilder builder, IConfiguration configuration) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.Services.Configure <AutoTrackingNumberOptions>(configuration); return(builder); }
public static IParbadBuilder ConfigureAutoRandomTrackingNumber( this IParbadBuilder builder, Action <AutoRandomTrackingNumberOptions> configureOptions) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.Services.Configure(configureOptions); return(builder); }
/// <summary> /// Configures the storage which required by Parbad for saving and loading data. /// </summary> /// <param name="builder"></param> /// <param name="configureStorage"></param> public static IParbadBuilder ConfigureStorage(this IParbadBuilder builder, Action <IStorageBuilder> configureStorage) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configureStorage == null) { throw new ArgumentNullException(nameof(configureStorage)); } configureStorage(new StorageBuilder(builder.Services).UseDefaultStorageManager()); return(builder); }
/// <summary> /// Configures the gateways. /// </summary> /// <param name="builder"></param> /// <param name="configure"></param> /// <returns></returns> public static IParbadBuilder ConfigureGateways(this IParbadBuilder builder, Action <IGatewayBuilder> configure) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configure == null) { throw new ArgumentNullException(nameof(configure)); } configure(new GatewayBuilder(builder.Services)); return(builder); }
public static IParbadBuilder ConfigureMessages(this IParbadBuilder builder, IConfiguration configuration) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } builder.Services.Configure <MessagesOptions>(configuration); return(builder); }
public static IParbadBuilder ConfigureMessages(this IParbadBuilder builder, Action <MessagesOptions> configureOptions) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configureOptions == null) { throw new ArgumentNullException(nameof(configureOptions)); } builder.ConfigureOptions(options => configureOptions(options.Messages)); return(builder); }
/// <summary> /// Configures the storage which required by Parbad for saving and loading data. /// </summary> /// <param name="builder"></param> /// <param name="configureStorage"></param> public static IParbadBuilder ConfigureStorage(this IParbadBuilder builder, Action <IStorageBuilder> configureStorage) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configureStorage == null) { throw new ArgumentNullException(nameof(configureStorage)); } var storageBuilder = new StorageBuilder(builder.Services); configureStorage(storageBuilder); return(builder); }
/// <summary> /// Configures the Parbad options. /// </summary> /// <param name="builder"></param> /// <param name="setupOptions"></param> public static IParbadBuilder ConfigureOptions(this IParbadBuilder builder, Action <ParbadOptions> setupOptions) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (setupOptions == null) { throw new ArgumentNullException(nameof(setupOptions)); } builder.Services.Configure(setupOptions); RegisterMessagesOptions(builder); return(builder); }
/// <summary> /// Configures the options required by Parbad to an <see cref="IServiceCollection"/>. /// </summary> /// <param name="builder"></param> /// <param name="optionsBuilder">A builder for configuring the options.</param> /// <returns></returns> public static IParbadBuilder ConfigureOptions(this IParbadBuilder builder, Action <IParbadOptionsBuilder> optionsBuilder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (optionsBuilder == null) { throw new ArgumentNullException(nameof(optionsBuilder)); } builder.Services.AddOptions(); optionsBuilder(new ParbadOptionsBuilder(builder.Services)); return(builder); }
/// <summary> /// Configures the storage required by Parbad to save and load the data. /// Note: It uses Microsoft.EntityFrameworkCore as storage, which means you can save your data /// in different database providers such as SQL Server, MySql, Sqlite, PostgreSQL, Oracle, InMemory, etc. /// <para>For more information see: https://docs.microsoft.com/en-us/ef/core/providers/.</para> /// </summary> /// <param name="builder"></param> /// <param name="storageBuilder"></param> public static IParbadBuilder ConfigureStorage(this IParbadBuilder builder, Action <DbContextOptionsBuilder> storageBuilder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (storageBuilder == null) { throw new ArgumentNullException(nameof(storageBuilder)); } builder.Services.AddDbContext <ParbadDataContext>(storageBuilder); var serviceProvider = builder.Services.BuildServiceProvider(); var databaseCreator = serviceProvider.GetRequiredService <IParbadDatabaseCreator>(); databaseCreator.Create(); return(builder); }
/// <summary> /// Configures the <see cref="HttpContext"/> required by Parbad. /// </summary> /// <param name="builder"></param> /// <param name="httpContextBuilder">A builder for configuring the HttpContext.</param> public static IParbadBuilder ConfigureHttpContext(this IParbadBuilder builder, Action <IHttpContextBuilder> httpContextBuilder) { httpContextBuilder(new HttpContextBuilder(builder.Services)); return(builder); }