using Microsoft.AspNet.WebHooks; using Newtonsoft.Json.Linq; using System.Linq; using System.Threading.Tasks; using CPE.App.Api.Helpers; using CPE.App.Web.Models; using CPE.App.Web.Elucidat; using Newtonsoft.Json; using System.Net.Http.Formatting; using Newtonsoft.Json.Serialization; namespace CPE.App.Api.WebHooks { public class ElucidatWebHookHandler : WebHookHandler { public ElucidatWebHookHandler() { this.Receiver = "elucidat"; } public override Task ExecuteAsync(string receiver, WebHookHandlerContext context) { // Get JSON from WebHook JObject data = context.GetDataOrDefault(); //TODO data is either project name & project code -> update tin can settings OR release details ->parse description, add to lookup table ReleaseModel release =data.ToObject();//deserialize data into ReleaseModel object; var releaseCode = release.ReleaseCode; var done = ReleaseDetailHelper.GetReleaseDescriptionDetails(release); if (!done) { //send email to cpe that a bad releae was made } // Get the action for this WebHook coming from the action query parameter in the URI string action = context.Actions.FirstOrDefault(); return Task.FromResult(done); } } }