Exemplo n.º 1
0
        public virtual async Task PutAsync(CachedImage cachedImage, IImage image)
        {
            var path = BuildPath(cachedImage.Path);

            using var stream = (await _fileSystem.GetFileAsync(path)).OpenWrite();

            if (await PreparePut(cachedImage, stream))
            {
                await image.SaveAsync(stream);

                image.Dispose();
                await PostPut(cachedImage, path);
            }
        }
        public virtual async Task <long> GetLengthAsync(MediaFile mediaFile)
        {
            Guard.NotNull(mediaFile, nameof(mediaFile));

            if (mediaFile.Size > 0)
            {
                return(mediaFile.Size);
            }

            var file = await _fileSystem.GetFileAsync(GetPath(mediaFile));

            if (file.Exists)
            {
                // Hopefully a future commit will save this
                mediaFile.Size = (int)file.Length;
            }

            return(mediaFile.Size);
        }