Beispiel #1
0
 public IActionResult PostCliente([FromBody] EventGridEvent[] ev)
 {
     if (ev == null && ev.Length == 0)
     {
         telemetry.TrackEvent("BadRequest");
         return(BadRequest());
     }
     try
     {
         foreach (EventGridEvent item in ev)
         {
             if (item.EventType == EventTypes.EventGridSubscriptionValidationEvent)
             {
                 var data     = (item.Data as JObject).ToObject <SubscriptionValidationEventData>();
                 var response = new Microsoft.Azure.EventGrid.Models.SubscriptionValidationResponse(data.ValidationCode);
                 return(Ok(response));
             }
             else
             {
                 if (item.EventType == "MRV.ClienteAtualizado")
                 {
                     var data = (item.Data as JObject).ToObject <Cliente>();
                     Repositorio.Salvar(data);
                 }
             }
         }
         return(Ok());
     }
     catch (Exception ex) {
         telemetry.TrackException(ex);
         return(BadRequest(ex.Message));
     }
 }
Beispiel #2
0
 public IHttpActionResult Notificar([FromBody] EventGridEvent[] ev)
 {
     if (ev == null && ev.Length == 0)
     {
         return(BadRequest());
     }
     try
     {
         foreach (EventGridEvent item in ev)
         {
             if (item.EventType == EventTypes.EventGridSubscriptionValidationEvent)
             {
                 var data     = (item.Data as JObject).ToObject <SubscriptionValidationEventData>();
                 var response = new Microsoft.Azure.EventGrid.Models.SubscriptionValidationResponse(data.ValidationCode);
                 return(Ok(response));
             }
             else
             {
                 //Deserializar dados
                 var registro = (item.Data as JObject).ToObject <Models.Produto>();
                 registro.DataCriacao     = DateTime.Now;
                 registro.DataModificacao = DateTime.Now;
                 using (var connection = new SqlConnection(ConfigurationManager.AppSettings["db"]))
                 {
                     connection.Open();
                     connection.Execute(SqlInsertProduto, registro);
                 }
             }
         }
         return(Ok());
     }
     catch (Exception ex)
     {
         //Retornar um 403 para o EventGrid fazer o retry.
         return(Content(HttpStatusCode.Forbidden, ex.Message));
     }
 }