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); }