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)); } }
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)); } }