Changed Sqlite to microsoft sqlite implementation

This commit is contained in:
2025-01-28 13:36:49 +02:00
parent d26c84480a
commit 20165af15a
13 changed files with 227 additions and 34 deletions

View File

@@ -7,11 +7,12 @@ using DiscordBotCore.Plugin;
namespace DiscordBotCore.Online.Helpers;
internal class PluginRepository : IPluginRepository
public class PluginRepository : IPluginRepository
{
private readonly IPluginRepositoryConfiguration _pluginRepositoryConfiguration;
private readonly HttpClient _httpClient;
internal PluginRepository(IPluginRepositoryConfiguration pluginRepositoryConfiguration)
public HttpClient _httpClient;
public PluginRepository(IPluginRepositoryConfiguration pluginRepositoryConfiguration)
{
_pluginRepositoryConfiguration = pluginRepositoryConfiguration;
_httpClient = new HttpClient();

View File

@@ -1,3 +1,4 @@
using System.Text.Json.Serialization;
using DiscordBotCore.Interfaces.PluginManagement;
namespace DiscordBotCore.Online.Helpers;
@@ -10,6 +11,7 @@ public class PluginRepositoryConfiguration : IPluginRepositoryConfiguration
public string PluginRepositoryLocation { get; }
public string DependenciesRepositoryLocation { get; }
[JsonConstructor]
public PluginRepositoryConfiguration(string baseUrl, string pluginRepositoryLocation, string dependenciesRepositoryLocation)
{
BaseUrl = baseUrl;

View File

@@ -9,7 +9,24 @@ using DiscordBotCore.Plugin;
namespace DiscordBotCore.Online;
public sealed class PluginManager
public interface IPluginManager
{
Task<List<OnlinePlugin>> GetPluginsList();
Task<OnlinePlugin?> GetPluginDataByName(string pluginName);
Task AppendPluginToDatabase(PluginInfo pluginData);
Task<List<PluginInfo>> GetInstalledPlugins();
Task<bool> IsPluginInstalled(string pluginName);
Task<bool> MarkPluginToUninstall(string pluginName);
Task UninstallMarkedPlugins();
Task<string?> GetDependencyLocation(string dependencyName);
Task<string?> GetDependencyLocation(string dependencyName, string pluginName);
string GenerateDependencyRelativePath(string pluginName, string dependencyPath);
Task InstallPluginNoProgress(OnlinePlugin plugin);
Task<Tuple<Dictionary<string, string>, List<OnlineDependencyInfo>>> GatherInstallDataForPlugin(OnlinePlugin plugin);
Task SetEnabledStatus(string pluginName, bool status);
}
public sealed class PluginManager : IPluginManager
{
private static readonly string _LibrariesBaseFolder = "Libraries";
private readonly IPluginRepository _PluginRepository;