Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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;
        }
Ejemplo n.º 3
0
 public SynologyFixture()
 {
     SynologyHttpClient = new SynologyHttpClient(new FlurlClient(BaseUrl));
     ApisInfo           = new DefaultApisInfo();
 }