コード例 #1
0
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            var dataJObject = context.GetDataOrDefault <JObject>();
            var action      = context.Actions.First();
            var pushModel   = new PushModel();

            switch (action)
            {
            case "repo:push":

                pushModel.Repository = dataJObject["repository"].ToObject <BitbucketRepository>();
                pushModel.User       = dataJObject["actor"].ToObject <BitbucketUser>();
                foreach (var change in dataJObject["push"]["changes"])
                {
                    pushModel.Previous = change["old"]["target"].ToObject <BitbucketTarget>();

                    pushModel.Current = change["new"]["target"].ToObject <BitbucketTarget>();
                }
                break;

            default:
                pushModel.RawData = dataJObject.ToString();
                break;
            }
            return(Task.FromResult(true));
        }
コード例 #2
0
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            try
            {
                string  action = context.Actions.First();
                JObject data   = context.GetDataOrDefault <JObject>();
                var     push   = JsonConvert.DeserializeObject <PushEvent>(data.ToString());
                //write this to App_Data so we can verify
                string path = HttpContext.Current.Server.MapPath("~/App_Data/last.json");
                using (var sw = new StreamWriter(path))
                {
                    foreach (var c in push.commits)
                    {
                        sw.WriteLine($"Commit by: {c.committer.username}\nMessage: {c.message}\n");
                    }
                    sw.WriteLine(data);
                }

                if (push.commits.Any(x => x.message.Contains("#build#") && x.committer.username.Trim() == "parabola949"))
                {
                    //we want to build, yay!
                    //return BuildHelper.Automate();
                }
                return(Task.FromResult(true));
            }
            catch (Exception e)
            {
                throw new HttpException(501, e.Message);
            }
        }
コード例 #3
0
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        { // For more information about PayPal WebHook payloads, please see
            // 'https://developer.paypal.com/docs/integration/direct/webhooks/'
            JObject entry = context.GetDataOrDefault <JObject>();

            return(Task.FromResult(true));
        }
コード例 #4
0
    public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
    {
        string  action = context.Actions.First();
        JObject data   = context.GetDataOrDefault <JObject>();

        return(Task.FromResult(true));
    }
コード例 #5
0
        //gavdcodeend 04

        //gavdcodebegin 03
        static bool ValidationIsOk(WebHookHandlerContext TheContext)
        {
            bool   rtnBool           = false;
            string myHMAC_Calculated = string.Empty;
            string signingKey        = "LtHurznxPxnvpew5GRMNooIuF6kpfzjxwYpXnJVEONo=";

            var    myHMACFromAuthorization = TheContext.Request.Headers.Authorization;
            string myHMAC_Authorization    = myHMACFromAuthorization.Parameter;

            JObject myBodyMinimizedObj = TheContext.GetDataOrDefault <JObject>();
            string  myDataSerialized   = JsonConvert.SerializeObject(myBodyMinimizedObj);

            byte[] myDataBytes = Encoding.UTF8.GetBytes(myDataSerialized);

            byte[] signingKeyBytes = Convert.FromBase64String(signingKey);
            using (HMACSHA256 myHMAC_SHA256 = new HMACSHA256(signingKeyBytes))
            {
                byte[] myDataHashBytes = myHMAC_SHA256.ComputeHash(myDataBytes);
                myHMAC_Calculated = Convert.ToBase64String(myDataHashBytes);
            }

            rtnBool = myHMAC_Authorization.Equals(myHMAC_Calculated);

            return(rtnBool);
        }
コード例 #6
0
        private String SetWebHookData(WebHookHandlerContext context)
        {
            JObject contextData = context.GetDataOrDefault <JObject>();

            WebhookData = contextData.ToString();
            return(null);
        }
コード例 #7
0
        public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {
            ZendeskPost post = context.GetDataOrDefault <ZendeskPost>();

            // Implementation logic goes here
            return(Task.FromResult(true));
        }
コード例 #8
0
        public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {
            // For more information about Slack WebHook payloads, please see
            // 'https://api.slack.com/outgoing-webhooks'
            NameValueCollection entry = context.GetDataOrDefault <NameValueCollection>();

            // We can trace to see what is going on.
            Trace.WriteLine(entry.ToString());

            // Switch over the IDs we used when configuring this WebHook
            switch (context.Id)
            {
            case "trigger":
                // Information can be returned using a SlackResponse
                var triggerReply = new SlackResponse("Hello trigger!");
                context.Response = context.Request.CreateResponse(triggerReply);
                break;

            case "slash":
                // Information can be returned in a plain text response
                context.Response         = context.Request.CreateResponse();
                context.Response.Content = new StringContent("Hello slash command!");
                break;
            }

            return(Task.FromResult(true));
        }
コード例 #9
0
ファイル: MyWebHookHandler.cs プロジェクト: guanyow/WebHooks
        public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {
            try
            {
                // Get JSON from WebHook
                //     CyberSourceHook test = new CyberSourceHook();
                string strTemp = HttpContext.Current.Server.MapPath("~/");
                // Get JSON from WebHook
                JObject      data = context.GetDataOrDefault <JObject>();
                string       path = String.Format("{0}\\{1}", strTemp, "log1.txt");
                StreamWriter sw   = new StreamWriter(path, true);
                sw.WriteLine(data);
                //     CyberSourceHook request = JsonConvert.DeserializeObject<CyberSourceHook>(data.Root.ToString());
                if (context.Id == "i")
                {
                    // do stuff
                }
                else if (context.Id == "z")
                {
                    // do more stuff
                    // dataReceived = request.data;


                    sw.WriteLine(dataReceived);
                    sw.Flush();
                    sw.Close();
                }
            }
            catch (Exception ex)
            {
            }
            return(Task.FromResult(true));
        }
コード例 #10
0
    public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
    {
        var result = false;

        try
        {
            // Get JSON from WebHook
            var data = context.GetDataOrDefault <JObject>();
            if (context.Id != "crcu" && context.Id != "cror")
            {
                return(Task.FromResult(true));
            }
            if (context.Id == "crcu")
            {
                result = WoocommerceCRMIntegrations.Entities.Contact.CreateContactInCRM(data);
            }
            else if (context.Id == "cror")
            {
                result = WoocommerceCRMIntegrations.Entities.Order.CreateOrderInCRM(data);
            }
        }
        catch (Exception ex)
        {
            result = false;
        }
        return(Task.FromResult(result));
    }
コード例 #11
0
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            var action = context.Actions.First();
            var data   = context.GetDataOrDefault <JObject>();

            // TODO: Ensure that issue is a pull request.
            if (action == "opened")
            {
                this.Process_pull_requestAsync(data["pull_request"]);
            }
            // handle reopened action too.
            else if (action == "reopened")
            {
                this.Process_pull_requestAsync(data["pull_request"]);
            }
            else if (action == "closed")
            {
                this.Process_pull_request_closed(data["pull_request"]);
            }
            else if (action == "labeled")
            {
                this.Process_pull_requestAsync(data["pull_request"]);
            }
            else if (action == "unlabeled")
            {
                this.Process_pull_requestAsync(data["pull_request"]);
            }

            return(Task.FromResult(true));
        }
コード例 #12
0
        public override async Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            var client        = Dependencies.Client;
            var notifications = context.GetDataOrDefault <IEnumerable <InstagramNotification> >();

            var repo = new UserRepository();
            var user = await repo.GetUser("steve");

            var config = Dependencies.GetConfig(context.Request.RequestUri);

            var media = new Tags(config, new InstaSharp.Models.Responses.OAuthResponse
            {
                AccessToken = user.InstagramAccessToken,
                User        = new InstaSharp.Models.UserInfo
                {
                    Username = "******"
                }
            });

            var result = await media.Recent(notifications.First().ObjectId);

            foreach (var image in result.Data)
            {
                hubContext.Value.Clients.All.showImage(image.Images.LowResolution.Url, image.User.Username, image.Caption.Text);
            }

            return;
        }
コード例 #13
0
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            SalesforceNotifications updates = context.GetDataOrDefault <SalesforceNotifications>();
            string sessionId = updates.SessionId;
            string company   = updates.Notifications.FirstOrDefault()?["Company"];

            return(Task.FromResult(true));
        }
コード例 #14
0
        public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {
            // For more information about Dropbox WebHook payloads, please see
            // 'https://www.dropbox.com/developers/reference/webhooks'
            JObject entry = context.GetDataOrDefault <JObject>();

            return(Task.FromResult(true));
        }
コード例 #15
0
ファイル: CustomReceiver.cs プロジェクト: fanxiaoyuan/Webhook
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            var notifications = context.GetDataOrDefault <JObject>()["Notifications"];
            var result        = notifications.ToObject <CustomResult[]>();

            Console.WriteLine($"================ received {string.Join(";", result.Select(x=>x.ToString()))}");
            return(Task.FromResult(true));
        }
コード例 #16
0
        public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {
            // For more information about GitHub WebHook payloads, please see
            // 'https://developer.github.com/webhooks/'
            JObject entry = context.GetDataOrDefault <JObject>();

            return(Task.FromResult(true));
        }
コード例 #17
0
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            JObject data = context.GetDataOrDefault <JObject>();

            log.Debug("Webhook ejecutando...");

            return(Task.FromResult(true));
        }
コード例 #18
0
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            if ("invoice.created".Equals(context.Actions.ElementAt(0), System.StringComparison.CurrentCultureIgnoreCase))
            {
                var data = context.GetDataOrDefault <test>();
            }

            return(Task.FromResult(true));
        }
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            var dataJObject = context.GetDataOrDefault <JObject>();
            var action      = context.Actions.FirstOrDefault();

            //other stuff goes here

            return(Task.FromResult(true));
        }
コード例 #20
0
        public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {
            // For more information about WebHook payloads, please see
            //https://www.easypost.com/webhooks-guide
            //https://www.easypost.com/docs/api/curl#events
            JObject entry = context.GetDataOrDefault <JObject>();

            return(Task.FromResult(true));
        }
コード例 #21
0
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            // Get JSON from WebHook
            JObject data = context.GetDataOrDefault <JObject>();

            // Get the action for this WebHook coming from the action query parameter in the URI
            string action = context.Actions.FirstOrDefault();

            return(Task.FromResult(true));
        }
コード例 #22
0
        /// <summary>
        /// Executes the webhook handler
        /// </summary>
        /// <param name="receiver"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public override async Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            // For more information about GitHub WebHook payloads, please see
            // 'https://developer.github.com/webhooks/'
            JObject entry = context.GetDataOrDefault <JObject>();

            foreach (var handler in _eventHandlers)
            {
                await handler.ExecuteAsync(context.Actions.First(), entry);
            }
        }
コード例 #23
0
        public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {
            // Get Form data from WebHook
            // For more information about MailChimp WebHooks, please see 'https://apidocs.mailchimp.com/webhooks/'
            NameValueCollection data = context.GetDataOrDefault <NameValueCollection>();

            // Get the action for this WebHook coming from the action query parameter in the URI
            string action = context.Actions.FirstOrDefault();

            return(Task.FromResult(true));
        }
コード例 #24
0
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            // make sure we're only processing the intended type of hook
            if ("GitHub".Equals(receiver, System.StringComparison.CurrentCultureIgnoreCase))
            {
                // todo: replace this placeholder functionality with your own code
                string  action   = context.Actions.First();
                JObject incoming = context.GetDataOrDefault <JObject>();
            }

            return(Task.FromResult(true));
        }
コード例 #25
0
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            string  action = context.Actions.First();
            JObject data   = context.GetDataOrDefault <JObject>();

            return(Task.FromResult(true));

            // for VSTS webhooks.
            //string msg = string.Format(CultureInfo.CurrentCulture, VstsReceiverResources.Handler_NonMappedEventType, action);
            //context.RequestContext.Configuration.DependencyResolver.GetLogger().Warn(msg);
            //return ExecuteAsync(context, data);
        }
コード例 #26
0
        public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {
            var notifications = context.GetDataOrDefault <CustomNotifications>();

            Console.WriteLine($"Received notification with payload:");
            foreach (var notification in notifications.Notifications)
            {
                Console.WriteLine(string.Join(", ", notification.Values));
            }

            return(Task.FromResult(true));
        }
コード例 #27
0
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            CustomNotifications data = context.GetDataOrDefault <CustomNotifications>();

            // Get data from each notification in this WebHook
            foreach (IDictionary <string, object> notification in data.Notifications)
            {
                // Process data
                Console.WriteLine(notification.Values.ToString());
            }

            return(Task.FromResult(true));
        }
コード例 #28
0
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            if (Common.IsBitBucketReceiver(receiver))
            {
                var dataJObject = context.GetDataOrDefault <JObject>();
                var action      = context.Actions.First();

                var processActivities = new ProcessActivities(dataJObject, action);
                processActivities.Process();
            }

            return(Task.FromResult(true));
        }
コード例 #29
0
        public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {
            // Get data from WebHook
            CustomNotifications data = context.GetDataOrDefault <CustomNotifications>();

            // Get data from each notification in this WebHook
            foreach (IDictionary <string, object> notification in data.Notifications)
            {
                // Process data
            }

            return(Task.FromResult(true));
        }
コード例 #30
0
        public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {
            // Convert to POCO type
            KuduNotification notification = context.GetDataOrDefault <KuduNotification>();

            // Get the notification message
            string message = notification.Message;

            // Get the notification author
            string author = notification.Author;

            return(Task.FromResult(true));
        }