/// <summary> /// Returns the events from the specified request. /// </summary> /// <param name="request">The http request.</param> /// <returns>The events from the specified request.</returns> public async Task <IEnumerable <ILineEvent> > GetEvents(HttpRequest request) { Guard.NotNull(nameof(request), request); byte[] content = await request.Body.ToArrayAsync(); if (content == null) { return(Enumerable.Empty <ILineEvent>()); } string signature = request.Headers["X-Line-Signature"]; SignatureValidator validator = new SignatureValidator(_configuration); validator.Validate(content, signature); string jsonContent = Encoding.UTF8.GetString(content); LineEventCollection eventCollection = JsonConvert.DeserializeObject <LineEventCollection>(jsonContent); if (eventCollection == null || eventCollection.Events == null) { return(Enumerable.Empty <ILineEvent>()); } return(eventCollection.Events); }
/// <summary> /// Returns the events from the specified request. /// </summary> /// <param name="request">The http request.</param> /// <returns>The events from the specified request.</returns> public async Task <ILineEvents> GetEvents(HttpRequest request) { Guard.NotNull(nameof(request), request); var content = await request.Body.ToArrayAsync().ConfigureAwait(false); if (content is null) { return(LineEventCollection.Empty()); } await _logger.LogReceivedEvents(content).ConfigureAwait(false); var signature = request.Headers["X-Line-Signature"]; _signatureValidator.Validate(content, signature); var jsonContent = Encoding.UTF8.GetString(content); var eventCollection = JsonConvert.DeserializeObject <LineEventCollection>(jsonContent); if (eventCollection is null) { return(LineEventCollection.Empty()); } if (eventCollection.Events is null) { eventCollection.Events = new List <LineEvent>(); } return(eventCollection); }