/// <summary> /// Get Disbursements client /// </summary> /// <returns></returns> public static IDisbursementsClient GetDisbursementsClient() { var services = new ServiceCollection(); /** * Change keys if running tests locally */ var config = new DisbursementsConfig { ApiKey = "aca73c1f015747778980783cbc0db2d7", SubscriptionKey = "20b05f1a1e48469993c68fc182ae6453", UserId = "7706a623-7c1c-4d25-9cea-06cf06fbda51", Environment = "sandbox", Sandbox = true }; services.AddHttpClient(Common.Constants.MtnClient, c => { c.BaseAddress = new Uri(Common.Constants.Sandbox); c.DefaultRequestHeaders.Add(Common.Constants.EnvHeader, "sandbox"); }); services.AddScoped <IBaseClient, BaseClient>() .AddScoped <ITokenClient, TokenClient>() .AddSingleton(config) .AddScoped <IDisbursementsClient, DisbursementsClient>() .AddScoped <IAccountBalanceClient, AccountBalanceClient>() .AddScoped <ITransferClient, TransferClient>() .AddScoped <IAccountHolderClient, AccountHolderClient>(); var serviceProvider = services.BuildServiceProvider(); var client = serviceProvider.GetService <IDisbursementsClient>(); return(client); }
public DisbursementsClient( DisbursementsConfig disbursementConfig, ITokenClient tokenClient, IAccountBalanceClient accountBalanceClient, IAccountHolderClient accountHolderClient, ITransferClient transferClient) { this.disbursementConfig = disbursementConfig; this.tokenClient = tokenClient; this.accountBalanceClient = accountBalanceClient; this.accountHolderClient = accountHolderClient; this.transferClient = transferClient; }
/// <summary> /// Mtn Disbursement Client /// </summary> /// <param name="services"></param> /// <param name="config"></param> /// <returns></returns> public static IServiceCollection AddMtnDisbursementsClient(this IServiceCollection services, DisbursementsConfig config) { services.AddHttpClient(Constants.MtnClient, c => { c.BaseAddress = config.Sandbox ? new Uri(Constants.Sandbox) : new Uri(config.BaseUrl); c.DefaultRequestHeaders.Add(Constants.EnvHeader, "sandbox"); }); return(services.AddScoped <IBaseClient, BaseClient>() .AddScoped <ITokenClient, TokenClient>() .AddSingleton(config) .AddScoped <IDisbursementsClient, DisbursementsClient>() .AddScoped <IAccountBalanceClient, AccountBalanceClient>() .AddScoped <ITransferClient, TransferClient>() .AddScoped <IAccountHolderClient, AccountHolderClient>()); }