private static void AddConfiguration(ICatalogueScannerHostBuilder builder)
        {
            var saleFinderSection = builder.Configuration.GetSection("SaleFinder");

            builder.Services
            .ConfigureOptions <ColesOptions>(saleFinderSection.GetSection(ColesOptions.Coles))
            .ConfigureOptions <WoolworthsOptions>(saleFinderSection.GetSection(WoolworthsOptions.Woolworths));
        }
Exemple #2
0
        private static void AddLocalisation(ICatalogueScannerHostBuilder builder)
        {
            builder.Services
            .AddMemoryCache()
            .AddPortableObjectLocalization(o => o.ResourcesPath = "Localisation");

            builder.Services.TryAddSingleton <ILocalizationFileLocationProvider, FunctionsRootPoFileLocationProvider>();
            builder.Services.TryAddTransient(typeof(Core.Localisation.IPluralStringLocalizer <>), typeof(PluralStringLocalizer <>));
        }
 private static void AddFunctionsPathOptions(ICatalogueScannerHostBuilder builder)
 {
     builder.Services.Configure <FunctionsPathOptions>(o =>
     {
         // https://github.com/Azure/azure-functions-dotnet-extensions/issues/17#issuecomment-499086297
         var executionContextOptions = builder.Services.BuildServiceProvider().GetService <IOptionsSnapshot <ExecutionContextOptions> >() !.Value;
         var appDirectory            = executionContextOptions.AppDirectory;
         o.RootDirectory             = appDirectory;
     });
 }
Exemple #4
0
        public void Configure(ICatalogueScannerHostBuilder builder)
        {
            #region null checks
            if (builder is null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            #endregion

            AddLocalisation(builder);
        }
        public void Configure(ICatalogueScannerHostBuilder builder)
        {
            #region null checks
            if (builder is null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            #endregion

            SetLocalisationCulture();
            AddFunctionsPathOptions(builder);
            AddConfigurationOptions(builder);
        }
Exemple #6
0
        public static ICatalogueScannerHostBuilder AddPlugin <T>(this ICatalogueScannerHostBuilder builder) where T : ICatalogueScannerPlugin, new()
        {
            #region null checks
            if (builder is null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            #endregion

            new T().Configure(builder);

            return(builder);
        }
        private void AddConfigurationOptions(ICatalogueScannerHostBuilder builder)
        {
            var coreSection = builder.Configuration.GetSection("Core");

            var matchingConfig = coreSection.GetSection(MatchingOptions.Matching);

            builder.Services
            .ConfigureOptions <MatchingOptions>(matchingConfig)
            .Configure <MatchingOptions>((options) =>
            {
                options.Rules.Clear();
                options.Rules.AddRange(catalogueItemMatchRuleSerialiser.DeserialiseMatchRules(matchingConfig.GetSection("Rules")));
            })
            .ConfigureOptions <EmailOptions>(coreSection.GetSection(EmailOptions.Email));
        }
        public void Configure(ICatalogueScannerHostBuilder builder)
        {
            #region null checks
            if (builder is null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            #endregion

            builder.Services.AddHttpClient();

            builder.Services
            .AddHttpClient <SaleFinderService>(client =>
            {
                client.BaseAddress = new Uri("https://embed.salefinder.com.au/");
            })
            .ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler
            {
                AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate,
            });

            AddConfiguration(builder);
        }