public static IServiceCollection AddSynology(this IServiceCollection services, Action <ISynologyBuilder> configure) { if (configure == null) { throw new ArgumentNullException(nameof(configure)); } var defaultHttpClient = new SynologyHttpClient() { DefaultRequestHeaders = { ExpectContinue = false } }; services.AddOptions(); services.AddSingleton <ISynologyConnectionSettings, SynologyConnectionSettings>(); services.AddSingleton <SidContainer, SidContainer>(); services.AddSingleton <SynologyHttpClient>(defaultHttpClient); services.AddTransient <ISynologyConnection, SynologyConnection>(); configure(new SynologyBuilder(services)); return(services); }
/// <summary> /// /// </summary> /// <param name="settings"></param> /// <param name="loggerFactory"></param> /// <param name="serviceProvider"></param> /// <param name="httpClient"></param> public SynologyConnection(ISynologyConnectionSettings settings, ILoggerFactory loggerFactory, IServiceProvider serviceProvider, SynologyHttpClient httpClient) { Settings = settings; ServiceProvider = serviceProvider; Logger = loggerFactory.CreateLogger <SynologyConnection>(); Logger.LogDebug($"Creating new connection to {Settings.BaseHost} with{(Settings.Ssl ? "" : "out")} SSL to port {Settings.Port}"); httpClient.BaseAddress = new Uri(Settings.WebApiUrl); Client = httpClient; }
public SynologyFixture() { SynologyHttpClient = new SynologyHttpClient(new FlurlClient(BaseUrl)); ApisInfo = new DefaultApisInfo(); }