// using System.Text.Json; // using ArcaneLibs.Extensions; // using LibMatrix.Interfaces.Services; // // namespace LibMatrix.Utilities.Bot; // // public class FileStorageProvider : IStorageProvider { // public string TargetPath { get; } // // /// // /// Creates a new instance of . // /// // /// // public FileStorageProvider(string targetPath) { // Console.WriteLine($"Initialised FileStorageProvider with path {targetPath}"); // TargetPath = targetPath; // if (!Directory.Exists(targetPath)) Directory.CreateDirectory(targetPath); // } // // public async Task SaveObjectAsync(string key, T value) => await File.WriteAllTextAsync(Path.Join(TargetPath, key), value?.ToJson()); // // public async Task LoadObjectAsync(string key) => JsonSerializer.Deserialize(await File.ReadAllTextAsync(Path.Join(TargetPath, key))); // // public Task ObjectExistsAsync(string key) => Task.FromResult(File.Exists(Path.Join(TargetPath, key))); // // public Task> GetAllKeysAsync() => Task.FromResult(Directory.GetFiles(TargetPath).Select(Path.GetFileName).ToList()); // // public Task DeleteObjectAsync(string key) { // File.Delete(Path.Join(TargetPath, key)); // return Task.CompletedTask; // } // }