Skip to content

Instantly share code, notes, and snippets.

View dbarkol's full-sized avatar
💭
poppin and lockin

David Barkol dbarkol

💭
poppin and lockin
View GitHub Profile
@section scripts {
<script src="~/lib/signalr.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/2.0.0/handlebars.js"></script>
<script type="text/javascript">
var hubConnection;
using Newtonsoft.Json;
namespace CloudEventSample.Models
{
public class CloudEvent<T> where T : class
{
[JsonProperty("eventID")]
public string EventId { get; set; }
[JsonProperty("cloudEventsVersion")]
using System.Collections.Generic;
namespace CloudEventSample.Models
{
public class Band
{
public string Name { get; set; }
public List<Album> Albums { get; set; }
}
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using CloudEventSample.Models;
using Newtonsoft.Json;
var cloudEvent = new CloudEvent<Band>
{
EventId = Guid.NewGuid().ToString(),
EventType = "newBand",
EventTypeVersion = "1.0",
CloudEventVersion = "0.1",
Data = GetBand(),
Source = $"{Topic}#subjectband",
EventTime = DateTime.UtcNow.ToString(CultureInfo.InvariantCulture),
};
public static class NewBand
{
[FunctionName("newband")]
public static IActionResult Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)]HttpRequest req,
TraceWriter log)
{
log.Info("newband function triggered");
var requestBody = new StreamReader(req.Body).ReadToEnd();
<policies>
<inbound>
<base />
<!-- Check event type -->
<set-variable value="@(context.Request.Headers["Aeg-Event-Type"].Contains("SubscriptionValidation"))" name="isEventGridSubscriptionValidation" />
<set-variable value="@(context.Request.Headers["Aeg-Event-Type"].Contains("Notification"))" name="isEventGridNotification" />
<choose>
<when condition="@(context.Variables.GetValueOrDefault<bool>("isEventGridSubscriptionValidation"))">
<return-response>
<set-status code="200" reason="OK" />
<set-variable value="@(context.Request.Headers["Aeg-Event-Type"].Contains("SubscriptionValidation"))" name="isEventGridSubscriptionValidation" />
<set-variable value="@(context.Request.Headers["Aeg-Event-Type"].Contains("Notification"))" name="isEventGridNotification" />
<choose>
<when condition="@(context.Variables.GetValueOrDefault<bool>("isEventGridSubscriptionValidation"))">
<!-- handle subscription validation -->
</when>
<when condition="@(context.Variables.GetValueOrDefault<bool>("isEventGridNotification"))">
<!-- handle notification message -->
</when>
</choose>
<when condition="@(context.Variables.GetValueOrDefault<bool>("isEventGridSubscriptionValidation"))">
<return-response>
<set-status code="200" reason="OK" />
<set-body>@{
var events = context.Request.Body.As<string>();
JArray a = JArray.Parse(events);
var eventGridData = a.First["data"];
var validationCode = eventGridData["validationCode"];
var jOutput =
new JObject(