5

WebHookHandler, .Net Core projesi için Json Verilerini Al'ı ayarlamaya çalışıyorum. Webhook'un teorik olarak nasıl çalıştığını biliyorum.WebHookReceiver el ile .Net Core için nasıl ayarlanır?

WebHooks Alınıyor ancak sample source code için uygun miktarda bilgi var. Ama ben .Net Core için bir örneğe ihtiyacım var?

+0

.Net çekirdeği gelecekteki bir plandır: https://github.com/aspnet/WebHooks/issues/5 –

+0

Elbette, GitHub iş parçacığında da aynı soruyu sordum. Her neyse, şimdi cevabı biliyorum. Teşekkürler! –

+0

.Net çekirdek desteği GitHub'da kullanılabilir: https://github.com/aspnet/WebHooks/blob/dev/README.md –

cevap

3

de WebHooks desteklemez ama hala çalışır. Bu arada, işleyici koduna bakabilir ve ASP.NET Core için benzer bir şey yapabilirsiniz.

Bu yardımcı olur umarız!

using Microsoft.AspNetCore.Mvc; 
using Newtonsoft.Json; 
using System; 
using System.Collections.Generic; 
using System.Threading.Tasks; 

namespace ApplicationInsightsMonitor.Controllers 
{ 
    [Produces("application/json")] 
    [Route("api/alerts")] 
    public class AlertController : Controller 
    { 
     [HttpPost] 
     public async Task<ActionResult> Post([FromBody] AIPayloadModel payload) 
     { 
      if (payload == default(AIPayloadModel)) 
      { 
       return NotFound(); 
      } 

      // Save to database 

      return Ok(); 
     } 
    } 

    public class AIPayloadModel 
    { 
     public enum AIPayloadStatus 
     { 
      Activated, 
      Resolved 
     } 

     public class AIPayloadContextModel 
     { 
      public enum AIConditionType 
      { 
       Metric, 
       Event 
      } 

      public enum AIMetricUnit 
      { 
       Bytes, 
       BytesPerSecond, 
       Count, 
       CountPerSecond, 
       Percent, 
       Seconds 
      } 

      public enum AIAggregation 
      { 
       Average, 
       Last, 
       Maximum, 
       Minimum, 
       None, 
       Total 
      } 

      public class AICondition 
      { 

       [JsonProperty("metricName")] 
       public String Name { get; set; } 

       [JsonProperty("metricUnit")] 
       public AIMetricUnit Units { get; set; } 

       [JsonProperty("metricValue")] 
       public Decimal Value { get; set; } 

       [JsonProperty("threshold")] 
       public Decimal Threshold { get; set; } 

       [JsonProperty("windowSize")] 
       public TimeSpan WindowSize { get; set; } 

       [JsonProperty("timeAggregation")] 
       public AIAggregation Aggregation { get; set; } 

       [JsonProperty("operator")] 
       public String Operator { get; set; } 
      } 

      [JsonProperty("timestamp")] 
      public DateTime Time { get; set; } 

      [JsonProperty("id")] 
      public String Id { get; set; } 

      [JsonProperty("name")] 
      public String Name { get; set; } 

      [JsonProperty("description")] 
      public String Description { get; set; } 

      [JsonProperty("conditionType")] 
      public AIConditionType ConditionType { get; set; } 

      [JsonProperty("condition")] 
      public AICondition Condition { get; set; } 

      [JsonProperty("subscriptionId")] 
      public String SubscriptionId { get; set; } 

      [JsonProperty("resourceGroupName")] 
      public String ResourceGroupName { get; set; } 

      [JsonProperty("resourceGroupType")] 
      public String ResourceGroupType { get; set; } 

      [JsonProperty("resourceName")] 
      public String ResourceName { get; set; } 

      [JsonProperty("resourceType")] 
      public String ResourceType { get; set; } 

      [JsonProperty("resourceRegion")] 
      public String ResourceRegion { get; set; } 

      [JsonProperty("portalLink")] 
      public String PortalLink { get; set; } 
     } 

     [JsonProperty(PropertyName = "status")] 
     public AIPayloadStatus Status { get; set; } 

     [JsonProperty(PropertyName = "context")] 
     public AIPayloadContextModel Context { get; set; } 

     [JsonProperty(PropertyName = "properties")] 
     public Dictionary<String, String> Properties { get; set; } = new Dictionary<String, String>(); 
    } 
} 

anahtar parametre üzerinde [FromBody] kullanarak ve tam olarak modelinde sağ JSON deserialization yaşıyor: Henrik

1

Burada Azure Uyarıları ile iş var çok temel bir örnek.