コード例 #1
0
ファイル: SharingService.cs プロジェクト: mndambuki/Emby
        public object Get(GetShareImage request)
        {
            var share = _sharingManager.GetShareInfo(request.Id);

            if (share == null)
            {
                throw new ResourceNotFoundException();
            }
            if (share.ExpirationDate <= DateTime.UtcNow)
            {
                throw new ResourceNotFoundException();
            }

            var item = _libraryManager.GetItemById(share.ItemId);

            var image = item.GetImageInfo(ImageType.Primary, 0);

            if (image != null)
            {
                return(ToStaticFileResult(image.Path));
            }

            // Grab a dlna icon if nothing else is available
            using (var response = _dlnaManager.GetIcon("logo240.jpg"))
            {
                using (var ms = new MemoryStream())
                {
                    response.Stream.CopyTo(ms);

                    ms.Position = 0;
                    var bytes = ms.ToArray();
                    return(ResultFactory.GetResult(bytes, "image/" + response.Format.ToString().ToLower()));
                }
            }
        }
コード例 #2
0
        private ActionResult GetIconInternal(string fileName)
        {
            var icon = _dlnaManager.GetIcon(fileName);

            if (icon == null)
            {
                return(NotFound());
            }

            return(File(icon.Stream, MimeTypes.GetMimeType(fileName)));
        }
コード例 #3
0
        public object Get(GetIcon request)
        {
            using (var response = _dlnaManager.GetIcon(request.Filename))
            {
                using (var ms = _memoryStreamProvider.CreateNew())
                {
                    response.Stream.CopyTo(ms);

                    ms.Position = 0;
                    var bytes = ms.ToArray();
                    return(ResultFactory.GetResult(bytes, "image/" + response.Format.ToString().ToLower()));
                }
            }
        }
コード例 #4
0
        public async Task <object> Get(GetShareImage request)
        {
            var share = _sharingManager.GetShareInfo(request.Id);

            if (share == null)
            {
                throw new ResourceNotFoundException();
            }
            if (share.ExpirationDate <= DateTime.UtcNow)
            {
                throw new ResourceNotFoundException();
            }

            var item = _libraryManager.GetItemById(share.ItemId);

            var image = item.GetImageInfo(ImageType.Primary, 0);

            if (image != null)
            {
                if (image.IsLocalFile)
                {
                    return(await _resultFactory.GetStaticFileResult(Request, image.Path).ConfigureAwait(false));
                }

                try
                {
                    // Don't fail the request over this
                    var updatedImage = await _libraryManager.ConvertImageToLocal(item, image, 0).ConfigureAwait(false);

                    return(await _resultFactory.GetStaticFileResult(Request, updatedImage.Path).ConfigureAwait(false));
                }
                catch
                {
                }
            }

            // Grab a dlna icon if nothing else is available
            using (var response = _dlnaManager.GetIcon("logo240.jpg"))
            {
                using (var ms = new MemoryStream())
                {
                    response.Stream.CopyTo(ms);

                    ms.Position = 0;
                    var bytes = ms.ToArray();
                    return(ResultFactory.GetResult(bytes, "image/" + response.Format.ToString().ToLower()));
                }
            }
        }
コード例 #5
0
        private ActionResult GetIconInternal(string fileName)
        {
            var icon = _dlnaManager.GetIcon(fileName);

            if (icon == null)
            {
                return(NotFound());
            }

            var contentType = "image/" + Path.GetExtension(fileName)
                              .TrimStart('.')
                              .ToLowerInvariant();

            return(File(icon.Stream, contentType));
        }
コード例 #6
0
        public object Get(GetIcon request)
        {
            using (var response = _dlnaManager.GetIcon(request.Filename))
            {
                using (var ms = new MemoryStream())
                {
                    response.Stream.CopyTo(ms);

                    ms.Position = 0;
                    var bytes = ms.ToArray();

                    var contentType = "image/" + response.Format.ToString().ToLower();

                    var cacheLength = TimeSpan.FromDays(365);
                    var cacheKey    = Request.RawUrl.GetMD5();

                    return(_resultFactory.GetStaticResult(Request, cacheKey, null, cacheLength, contentType, () => Task.FromResult <Stream>(new MemoryStream(bytes))));
                    //return ResultFactory.GetResult(bytes, contentType);
                }
            }
        }
コード例 #7
0
        public object Get(GetIcon request)
        {
            var contentType = "image/" + Path.GetExtension(request.Filename).TrimStart('.').ToLower();

            var cacheLength = TimeSpan.FromDays(365);
            var cacheKey    = Request.RawUrl.GetMD5();

            return(_resultFactory.GetStaticResult(Request, cacheKey, null, cacheLength, contentType, () => Task.FromResult(_dlnaManager.GetIcon(request.Filename).Stream)));
        }