1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00
Artemis/src/Artemis.Storage/Repositories/PluginRepository.cs
RobertBeekman 551921db9f
Storage - Replace LiteDB with SQLite + EF Core (#843)
Storage - Added LiteDB to SQLite migration
UI - Try to die a bit more gracefully
Core - Delay start watching plugins for hot reload after initializing
UI - Simplify category management logic
UI - Avoid crash during profile icon load
Storage - Fix entry metadata retrieval
2024-03-13 20:19:21 +01:00

44 lines
1.5 KiB
C#

using System;
using System.Linq;
using Artemis.Storage.Entities.Plugins;
using Artemis.Storage.Repositories.Interfaces;
using Microsoft.EntityFrameworkCore;
namespace Artemis.Storage.Repositories;
internal class PluginRepository(Func<ArtemisDbContext> getContext) : IPluginRepository
{
public PluginEntity? GetPluginByPluginGuid(Guid pluginGuid)
{
using ArtemisDbContext dbContext = getContext();
return dbContext.Plugins.Include(p => p.Features).FirstOrDefault(p => p.PluginGuid == pluginGuid);
}
public PluginSettingEntity? GetSettingByNameAndGuid(string name, Guid pluginGuid)
{
using ArtemisDbContext dbContext = getContext();
return dbContext.PluginSettings.FirstOrDefault(p => p.Name == name && p.PluginGuid == pluginGuid);
}
public void RemoveSettings(Guid pluginGuid)
{
using ArtemisDbContext dbContext = getContext();
dbContext.PluginSettings.RemoveRange(dbContext.PluginSettings.Where(s => s.PluginGuid == pluginGuid));
dbContext.SaveChanges();
}
public void SaveSetting(PluginSettingEntity pluginSettingEntity)
{
using ArtemisDbContext dbContext = getContext();
dbContext.PluginSettings.Update(pluginSettingEntity);
dbContext.SaveChanges();
}
public void SavePlugin(PluginEntity pluginEntity)
{
using ArtemisDbContext dbContext = getContext();
dbContext.Update(pluginEntity);
dbContext.SaveChanges();
}
}