Ejemplo n.º 1
0
 public TimerService(
     IOptions <TimerConfiguration> config,
     IWebhookHandler webhookHandler)
 {
     _webhookHandler = webhookHandler;
     _config         = config.Value;
 }
Ejemplo n.º 2
0
 public WebhookProcessor(IOptionsMonitor <SecuredFulfillmentClientConfiguration> options,
                         IFulfillmentClient fulfillmentClient,
                         IWebhookHandler webhookHandler,
                         ILogger <WebhookProcessor> logger) : this(options.CurrentValue,
                                                                   fulfillmentClient,
                                                                   webhookHandler,
                                                                   logger)
 {
 }
Ejemplo n.º 3
0
 public WebhookMiddleware(
     RequestDelegate next,
     TelegramApiConfiguration config,
     IWebhookHandler webhookHandler)
 {
     Next           = next ?? throw new System.ArgumentNullException(nameof(next));
     Config         = config ?? throw new System.ArgumentNullException(nameof(config));
     WebhookHandler = webhookHandler;
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MarketplaceProcessor"/> class.
 /// </summary>
 /// <param name="marketplaceClient">Marketplace API client.</param>
 /// <param name="webhookHandler">Webhook handler.</param>
 /// <param name="logger">Logger.</param>
 public MarketplaceProcessor(
     IMarketplaceSaaSClient marketplaceClient,
     IWebhookHandler webhookHandler,
     ILogger <MarketplaceProcessor> logger)
 {
     this.logger            = logger;
     this.marketplaceClient = marketplaceClient;
     this.webhookHandler    = webhookHandler;
     this.marketplaceClient = marketplaceClient;
 }
Ejemplo n.º 5
0
        public WebhookProcessor(
            SecuredFulfillmentClientConfiguration options,
            IFulfillmentClient fulfillmentClient,
            IWebhookHandler webhookHandler,
            ILogger <WebhookProcessor> logger)
        {
            this.options = options;

            this.fulfillmentClient = fulfillmentClient;
            this.logger            = logger;
            this.webhookHandler    = webhookHandler;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="WebhookProcessor"/> class.
 /// </summary>
 /// <param name="apiClient">The API client.</param>
 /// <param name="webhookHandler">The webhook handler.</param>
 public WebhookProcessor(IFulfillmentApiClient apiClient, IWebhookHandler webhookHandler)
 {
     this.apiClient      = apiClient;
     this.webhookHandler = webhookHandler;
 }
Ejemplo n.º 7
0
 public HealthCheckController(IWebhookHandler webhookHandler, IHealthCheckRepository healthCheckRepository)
 {
     _webhookHandler        = webhookHandler;
     _healthCheckRepository = healthCheckRepository;
 }
 public BackgroundReportingService(IWebhookHandler webhookHandler, IHealthCheckRepository healthCheckRepository)
 {
     _webhookHandler        = webhookHandler;
     _healthCheckRepository = healthCheckRepository;
 }
Ejemplo n.º 9
0
 public WebhookController(IWebhookHandler handler)
 {
     _handler = handler;
 }
Ejemplo n.º 10
0
        public static int HandleWebhook(IWebhookHandler handler, bool?advancedWebhook = false)
        {
            if (!HttpListener.IsSupported)
            {
                Console.WriteLine("Sorry, your OS does not support the default windows HTTP listener. Webhook demo cannot proceed.");
                Environment.Exit(1);
            }
            Console.WriteLine("Webhook: Starting HTTP listener for localhost on port 9876.");

            var listener = new HttpListener();

            listener.Prefixes.Add("http://localhost:9876/");
            listener.Start();

            Console.WriteLine("Webhook: Waiting for a request ... ");
            if (advancedWebhook == true)
            {
                Console.WriteLine("Listening for an AdvancedWebhook!");
            }
            Console.WriteLine("Note: If using a reverse proxy (like ngrok) make sure you set the host header to localhost:9876");
            var context = listener.GetContext();

            Console.WriteLine("Webhook: Request received");
            using (var reader = new StreamReader(context.Request.InputStream, Encoding.UTF8))
            {
                var body    = reader.ReadToEnd();
                var headers = new Dictionary <string, List <string> >();
                foreach (var headerName in context.Request.Headers.AllKeys)
                {
                    headers.Add(headerName, new List <string>());
                    foreach (var headerValue in context.Request.Headers.GetValues(headerName))
                    {
                        headers[headerName].Add(headerValue);
                    }
                }

                IWebhookPackage webhookPackage;
                if (advancedWebhook == true)
                {
                    Console.WriteLine("Listening for an AdvancedWebhook!");
                    webhookPackage = handler.HandleAdvancedWebhook(headers, body, "POST", "");
                }
                else
                {
                    webhookPackage = handler.HandleWebhook(headers, body, "POST", "");
                }

                if (webhookPackage is AuthorizationResponseWebhookPackage)
                {
                    var authPackage = webhookPackage as AuthorizationResponseWebhookPackage;
                    PrintAuthorizationResponse(authPackage.AuthorizationResponse);
                }
                else if (webhookPackage is ServiceUserSessionEndWebhookPackage)
                {
                    var sessionEndPackage = webhookPackage as ServiceUserSessionEndWebhookPackage;
                    Console.WriteLine($"Session remotely ended for Service User Hash {sessionEndPackage.ServiceUserHash} at {sessionEndPackage.LogoutRequested}");
                }
                else if (webhookPackage is DirectoryUserDeviceLinkCompletionWebhookPackage)
                {
                    var message = ((DirectoryUserDeviceLinkCompletionWebhookPackage)webhookPackage).DeviceLinkData;
                    Console.WriteLine($"You have a new linked device, congratulations!");
                    Console.WriteLine($"     DeviceID:          {message.DeviceId}");
                    Console.WriteLine($"     DevicePubKey:      \n{message.DevicePublicKey}");
                    Console.WriteLine($"     DevicePubKeyID:    {message.DevicePublicKeyId}");
                }
                else if (webhookPackage is AdvancedAuthorizationResponseWebhookPackage)
                {
                    var authPackage = webhookPackage as AdvancedAuthorizationResponseWebhookPackage;
                    PrintAdvancedAuthorizationResponse(authPackage.AdvancedAuthorizationResponse);
                }
                else
                {
                    Console.WriteLine("Error: received a webhook package but it was not for a known webhook type!");
                    return(1);
                }

                return(0);
            }
        }