private async Task <MessageContentResponse> InternalGetMessageContent(ReceivedContent content, bool isPreview) { string url; if (isPreview) { url = Api.Preview.Replace("<messageId>", content.Id); } else { url = Api.Content.Replace("<messageId>", content.Id); } var res = await _httpClient.GetAsync(url); if (res.StatusCode != HttpStatusCode.OK) { return(await Task.FromResult <MessageContentResponse>(null)); } var stream = await res.Content.ReadAsStreamAsync(); var disposition = res.Content.Headers.GetValues("Content-Disposition").First(); var filename = new ContentDisposition(disposition).FileName; var result = new MessageContentResponse { Content = stream, FileName = filename }; return(result); }
public ReceivedContent Content() { var result = new ReceivedContent { Parent = this, Id = RawContent.Id, From = RawContent.From, CreatedTime = RawContent.CreatedTime, To = RawContent.To, ToType = RawContent.ToType, IsOperation = EventType == LineBot.EventType.ReceivingOperation, IsMessage = EventType == LineBot.EventType.ReceivingMessage, OpType = RawContent.OpType, ContentType = RawContent.ContentType }; return(result); }
public Task <MessageContentResponse> GetMessageContentPreview(ReceivedContent content) { return(InternalGetMessageContent(content, true)); }
public Task <MessageContentResponse> GetMessageContent(ReceivedContent content) { return(InternalGetMessageContent(content, false)); }