update signutare
[CPE_learningsite] / CPE / CPE.App / CPE.App.Api / WebHooks / ElucidatWebHookHandler.cs
1 using Microsoft.AspNet.WebHooks;
2 using Newtonsoft.Json.Linq;
3 using System.Linq;
4 using System.Threading.Tasks;
5 using CPE.App.Api.Helpers;
6 using CPE.App.Web.Models;
7 using CPE.App.Web.Elucidat;
8 using Newtonsoft.Json;
9 using System.Net.Http.Formatting;
10 using Newtonsoft.Json.Serialization;
11
12 namespace CPE.App.Api.WebHooks
13
14 {
15     public class ElucidatWebHookHandler : WebHookHandler
16     {
17
18         public ElucidatWebHookHandler()
19         {
20             this.Receiver = "elucidat";
21         }
22
23         public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
24         {
25             
26
27             // Get JSON from WebHook
28             JObject data = context.GetDataOrDefault<JObject>();
29             //TODO data is either project name & project code -> update tin can settings OR release details ->parse description, add to lookup table
30             
31             ReleaseModel release =data.ToObject<ReleaseModel>();//deserialize data into ReleaseModel object;
32             var releaseCode = release.ReleaseCode;
33             var done = ReleaseDetailHelper.GetReleaseDescriptionDetails(release);
34             if (!done)
35             {
36                 //send email to cpe that a bad releae was made
37             }
38
39             // Get the action for this WebHook coming from the action query parameter in the URI
40             string action = context.Actions.FirstOrDefault();
41
42             return Task.FromResult(done);
43         }
44     }
45 }