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); }
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; }