예제 #1
0
        public async Task <ActionResult> DetailsAsync(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var feed = await _feedSource.GetNewsAsync(id.Value).ConfigureAwait(false);

            var rssFeedVm = Mapper.Map <RssFeedViewModel>(feed);

            if (rssFeedVm == null)
            {
                return(HttpNotFound());
            }

            return(PartialView(rssFeedVm));
        }
예제 #2
0
        public async Task <HttpResponseMessage> GetNewsImageAsync(int newsId)
        {
            var newsFeed = await _feedSource.GetNewsAsync(newsId).ConfigureAwait(false);

            if (newsFeed == null)
            {
                return(new HttpResponseMessage(HttpStatusCode.NotFound));
            }

            var imageData = newsFeed.ImageData;
            var mimeType  = newsFeed.ImageMimeType;
            HttpResponseMessage response;

            using (var imageStream = new MemoryStream(imageData))
            {
                response = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ByteArrayContent(imageStream.ToArray())
                };
            }

            response.Content.Headers.ContentType = new MediaTypeHeaderValue(mimeType);
            return(response);
        }