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