コード例 #1
0
        public static Task <Stream> ProcessAsync(IOwinContext context, WebMediaType mediatype, WebFileType filetype, string id, int offset)
        {
            ISet <Guid> necessaryMIATypes = new HashSet <Guid>();

            necessaryMIATypes.Add(MediaAspect.ASPECT_ID);
            necessaryMIATypes.Add(ProviderResourceAspect.ASPECT_ID);
            necessaryMIATypes.Add(ImporterAspect.ASPECT_ID);

            MediaItem item = MediaLibraryAccess.GetMediaItemById(context, id, necessaryMIATypes, null);

            if (item == null)
            {
                throw new NotFoundException("RetrieveFile: no media item found");
            }

            var files = ResourceAccessUtils.GetResourcePaths(item);
            var ra    = GetResourceAccessor(files[offset]);
            IFileSystemResourceAccessor fsra = ra as IFileSystemResourceAccessor;

            if (fsra == null)
            {
                throw new InternalServerException("RetrieveFile: failed to create IFileSystemResourceAccessor");
            }

            return(fsra.OpenReadAsync());
        }
コード例 #2
0
        public static Task <WebBoolResult> ProcessAsync(IOwinContext context, WebMediaType mediatype, WebFileType filetype, string id, int offset)
        {
            if (id == null)
            {
                throw new BadRequestException("IsLocalFile: id is null");
            }

            ISet <Guid> necessaryMIATypes = new HashSet <Guid>();

            necessaryMIATypes.Add(MediaAspect.ASPECT_ID);
            necessaryMIATypes.Add(ProviderResourceAspect.ASPECT_ID);
            necessaryMIATypes.Add(ImporterAspect.ASPECT_ID);

            ISet <Guid> optionalMIATypes = new HashSet <Guid>();

            optionalMIATypes.Add(VideoAspect.ASPECT_ID);
            optionalMIATypes.Add(MovieAspect.ASPECT_ID);
            optionalMIATypes.Add(SeriesAspect.ASPECT_ID);
            optionalMIATypes.Add(AudioAspect.ASPECT_ID);
            optionalMIATypes.Add(ImageAspect.ASPECT_ID);

            MediaItem item = MediaLibraryAccess.GetMediaItemById(context, Guid.Parse(id), necessaryMIATypes, optionalMIATypes);

            if (item == null)
            {
                throw new NotFoundException(String.Format("IsLocalFile: No MediaItem found with id: {0}", id));
            }

            var files = ResourceAccessUtils.GetResourcePaths(item);

            return(System.Threading.Tasks.Task.FromResult(new WebBoolResult {
                Result = files[offset].IsValidLocalPath
            }));
        }
コード例 #3
0
        public static Task <WebFileInfo> ProcessAsync(IOwinContext context, WebMediaType mediatype, WebFileType filetype, string id, int offset)
        {
            ISet <Guid> necessaryMIATypes = new HashSet <Guid>();

            necessaryMIATypes.Add(MediaAspect.ASPECT_ID);
            necessaryMIATypes.Add(ProviderResourceAspect.ASPECT_ID);
            necessaryMIATypes.Add(ImporterAspect.ASPECT_ID);

            MediaItem item = MediaLibraryAccess.GetMediaItemById(context, id, necessaryMIATypes, null);

            if (item == null)
            {
                throw new NotFoundException("GetFileInfo: no media item found");
            }

            var files = ResourceAccessUtils.GetResourcePaths(item);
            var ra    = GetResourceAccessor(files[offset]);
            IFileSystemResourceAccessor fsra = ra as IFileSystemResourceAccessor;

            if (fsra == null)
            {
                throw new InternalServerException("GetFileInfo: failed to create IFileSystemResourceAccessor");
            }

            WebFileInfo webFileInfo = new WebFileInfo
            {
                Exists           = fsra.Exists,
                Extension        = fsra.Path.Split('.').Last(),
                IsLocalFile      = true,
                IsReadOnly       = true,
                LastAccessTime   = DateTime.Now,
                LastModifiedTime = fsra.LastChanged,
                Name             = fsra.ResourceName,
                OnNetworkDrive   = false,
                Path             = files[offset].FileName,
                Size             = fsra.Size,
            };

            return(Task.FromResult(webFileInfo));
        }