Beispiel #1
0
        public static IApplicationBuilder UseMedium(this IApplicationBuilder app, Action <MediumOptions> options)
        {
            var configurator  = app.ApplicationServices.GetService <IMediumConfigurator>();
            var mediumOptions = new MediumOptions();

            options(mediumOptions);
            var configuration = mediumOptions.SettingsLoader.Load();
            var settings      = JsonConvert.DeserializeObject <MediumSettings>(configuration);
            var webhooks      = settings.Webhooks.Select(x => WebhookModel.MapToWebhook(x));

            foreach (var webhook in webhooks)
            {
                configurator.AddWebhook(webhook);
            }
            var mediumConfiguration = configurator.Configure();

            if (!mediumConfiguration.Webhooks.Any())
            {
                return(app);
            }
            var repository = mediumConfiguration.Repository;
            var tasks      = new List <Task>();

            foreach (var webhook in mediumConfiguration.Webhooks)
            {
                tasks.Add(repository.AddAsync(webhook));
            }
            Task.WaitAll(tasks.ToArray());

            return(app);
        }
Beispiel #2
0
 public MediumWorker(ITzKtClient tzKtClient, IOptions <MediumOptions> options, IOptions <BotConfig> config, ILogger <MediumWorker> logger, IServiceProvider provider)
 {
     _options    = options.Value;
     _tzKtClient = tzKtClient;
     _logger     = logger;
     _provider   = provider;
     _config     = config.Value;
 }