Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 public Task <MessageContentResponse> GetMessageContentPreview(ReceivedContent content)
 {
     return(InternalGetMessageContent(content, true));
 }
Esempio n. 4
0
 public Task <MessageContentResponse> GetMessageContent(ReceivedContent content)
 {
     return(InternalGetMessageContent(content, false));
 }