public IActionResult PusherForIt(PusherNotifications data) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // Get the notification creation timestamp. var createdAtUnix = data.CreatedAt; var createdAt = DateTimeOffset.FromUnixTimeMilliseconds(createdAtUnix); _logger.LogInformation( 0, "{ControllerName} received {Count} notifications created at '{CreatedAt}'.", nameof(PusherController), data.Events.Count, createdAt.ToString("o")); // Get details of the individual notifications. var index = 0; foreach (var @event in data.Events) { if (@event.TryGetValue(PusherConstants.EventNamePropertyName, out var eventName)) { if (@event.TryGetValue(PusherConstants.ChannelNamePropertyName, out var channelName)) { _logger.LogInformation( 1, "Event {EventNumber} has {Count} properties, including name '{EventName}' and channel " + "'{ChannelName}'.", index, @event.Count, eventName, channelName); } else { _logger.LogInformation( 2, "Event {EventNumber} has {Count} properties, including name '{EventName}'.", index, @event.Count, eventName); } } else { _logger.LogError( 3, "Event {EventNumber} has {Count} properties but does not contain a {PropertyName} property.", index, @event.Count, PusherConstants.EventNamePropertyName); } index++; } return(Ok()); }
public IActionResult PusherForIt(string[] eventNames, PusherNotifications data) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // Get the notification creation timestamp. var createdAtUnix = data.CreatedAt; var createdAt = DateTimeOffset.FromUnixTimeMilliseconds(createdAtUnix); _logger.LogInformation( 0, $"{nameof(PusherController)} / 'It' received {{Count}} notifications and {{EventCount}} events " + "created at '{CreatedAt}'.", data.Events.Count, eventNames.Length, createdAt.ToString("o")); for (var i = 0; i < eventNames.Length; i++) { _logger.LogInformation( 1, "Event {Index} was '{EventName}'.", i, eventNames[i]); } // Get details of the individual notifications. var index = 0; foreach (var @event in data.Events) { if (@event.TryGetValue(PusherConstants.EventNamePropertyName, out var eventName)) { if (@event.TryGetValue(PusherConstants.ChannelNamePropertyName, out var channelName)) { _logger.LogInformation( 2, "Event {EventNumber} has {Count} properties, including name '{EventName}' and channel " + "'{ChannelName}'.", index, @event.Count, eventName, channelName); } else { _logger.LogInformation( 3, "Event {EventNumber} has {Count} properties, including name '{EventName}'.", index, @event.Count, eventName); } } else { _logger.LogWarning( 4, "Event {EventNumber} has {Count} properties but does not contain a " + $"{PusherConstants.EventNamePropertyName} property.", index, @event.Count); } index++; } return(Ok()); }