protected string GetPath(MediaFile mediaFile)
        {
            Guard.NotNull(mediaFile, nameof(mediaFile));

            if (_pathCache.TryGetValue(mediaFile.Id, out var path))
            {
                return(path);
            }

            var ext = mediaFile.Extension.NullEmpty() ?? MimeTypes.MapMimeTypeToExtension(mediaFile.MimeType);

            var fileName  = mediaFile.Id.ToString(ImageCache.IdFormatString).Grow(ext, ".");
            var subfolder = fileName.Substring(0, ImageCache.MaxDirLength);

            path = _fileSystem.PathCombine(subfolder, fileName);
            path = _fileSystem.PathCombine(MediaRootPath, path);

            _pathCache[mediaFile.Id] = path;

            return(path);
        }