public virtual async Task SaveAsync(MediaFile mediaFile, MediaStorageItem item)
        {
            Guard.NotNull(mediaFile, nameof(mediaFile));

            // TODO: (?) if the new file extension differs from the old one then the old file never gets deleted

            var filePath = GetPath(mediaFile);

            if (item != null)
            {
                // Create folder if it does not exist yet
                var dir = Path.GetDirectoryName(filePath);
                await _fileSystem.TryCreateDirectoryAsync(dir);

                using (item)
                {
                    using var outStream = (await _fileSystem.GetFileAsync(filePath)).OpenWrite();
                    await item.SaveToAsync(outStream, mediaFile);
                }
            }
            else
            {
                // Remove media storage if any
                await _fileSystem.TryDeleteFileAsync(filePath);
            }
        }
Пример #2
0
        public virtual async Task DeleteAsync(MediaFile mediaFile)
        {
            Guard.NotNull(mediaFile, nameof(mediaFile));

            var filter = string.Format("{0}*.*", mediaFile.Id.ToString(IdFormatString));

            await foreach (var file in _fileSystem.EnumerateFilesAsync(_thumbsRootDir, filter, deep: true))
            {
                await _fileSystem.TryDeleteFileAsync(file.SubPath);
            }
        }