public async Task<HttpResponseMessage> FireTheTriggers()
        {

            // This action is the simulation of some external force causing
            // the trigger to fire for all awaiting Logic Apps where
            // our custom configuration value has been satisfied

            var readyCallbacks = from callback in CallbackStore.Values
                                    where callback.SampleConfigFromLogicApp.QuietHour != DateTime.UtcNow.Hour
                                    select callback;

            foreach (var storedCallback in readyCallbacks)
            {
                var callback = new ClientTriggerCallback<SamplePushEvent>(storedCallback.CallbackUri);

                await callback.InvokeAsyncWithBody(
                                    Runtime.FromAppSettings(),
                                    new SamplePushEvent()
                                    {
                                        SampleStringProperty = 
                                            string.Format("Fired with configuration data: {0}", 
                                                storedCallback.SampleConfigFromLogicApp.QuietHour)
                                    });
            }

            return Request.CreateResponse<string>(HttpStatusCode.OK,
                    string.Format("{0} triggers were fired.", readyCallbacks.Count()));

        }
        public async Task <HttpResponseMessage> FireTheTriggers()
        {
            // This action is the simulation of some external force causing
            // the trigger to fire for all awaiting Logic Apps where
            // our custom configuration value has been satisfied

            var readyCallbacks = from callback in CallbackStore.Values
                                 where callback.SampleConfigFromLogicApp.QuietHour != DateTime.UtcNow.Hour
                                 select callback;

            foreach (var storedCallback in readyCallbacks)
            {
                var callback = new ClientTriggerCallback <SamplePushEvent>(storedCallback.CallbackUri);

                await callback.InvokeAsyncWithBody(
                    Runtime.FromAppSettings(),
                    new SamplePushEvent()
                {
                    SampleStringProperty =
                        string.Format("Fired with configuration data: {0}",
                                      storedCallback.SampleConfigFromLogicApp.QuietHour)
                });
            }

            return(Request.CreateResponse <string>(HttpStatusCode.OK,
                                                   string.Format("{0} triggers were fired.", readyCallbacks.Count())));
        }
 public async Task<HttpResponseMessage> Webhook(JArray events)
 {
     foreach (var e in events)
     {
         foreach (var c in CallbackStore)
         {
             var callback = new ClientTriggerCallback<JObject>(c.Value);
             await callback.InvokeAsync(Runtime.FromAppSettings(), e);
         }
     }
     return Request.CreateResponse(HttpStatusCode.OK);
 }
Example #4
0
        public async static Task InvokeAsyncWithBody <TResult>(
            this ClientTriggerCallback <TResult> callback,
            Runtime runtime,
            TResult result)
        {
            // This is a hack, and it doesn't feel sound, but it works.
            JObject values = new JObject();

            values.Add("body", JToken.FromObject(result));

            await callback.InvokeAsync(runtime, values).ConfigureAwait(false);
        }
Example #5
0
 public async Task <HttpResponseMessage> Webhook(JArray events)
 {
     foreach (var e in events)
     {
         foreach (var c in CallbackStore)
         {
             var callback = new ClientTriggerCallback <JObject>(c.Value);
             await callback.InvokeAsync(Runtime.FromAppSettings(), e);
         }
     }
     return(Request.CreateResponse(HttpStatusCode.OK));
 }
Example #6
0
 /// <summary>
 /// Method to trigger the logic app.  Called when an event is recieved
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 /// <param name="runtime"></param>
 /// <param name="clientTriggerCallback"></param>
 private void sendTrigger(object sender, EventHubMessage e, Runtime runtime, ClientTriggerCallback <EventHubMessage> clientTriggerCallback)
 {
     clientTriggerCallback.InvokeAsync(runtime, e);
 }
 /// <summary>
 /// Method to trigger the logic app.  Called when an event is recieved
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 /// <param name="runtime"></param>
 /// <param name="clientTriggerCallback"></param>
 private void sendTrigger(object sender, EventHubMessage e, Runtime runtime, ClientTriggerCallback<EventHubMessage> clientTriggerCallback)
 {
     clientTriggerCallback.InvokeAsync(runtime, e);
 }
 public static async Task FireTheTriggers(Dictionary<string,string> values, string report)
 {
     foreach (var storedCallback in CallbackStore.Values)
     {
         var callback = new ClientTriggerCallback<PushEvent>(storedCallback.CallbackUri);
         telemetry.TrackEvent(string.Format("Push Trigger fired {0}", storedCallback.CallbackUri.ToString()));
         var jobj = new JObject();
         foreach (var val in values.Keys)
             jobj[val] = values[val];
         await callback.InvokeAsyncWithBody(Runtime.FromAppSettings(),new PushEvent() {values = jobj, report = report});
     }
 }