using Microsoft.EntityFrameworkCore; using System.Linq; using System.Collections.Generic; using SZUAbsolventenverein.Module.AdminModules.Models; using Oqtane.Modules; namespace SZUAbsolventenverein.Module.AdminModules.Repository { /// /// Repository to manage admin settings in the database. /// public interface IAdminSettingsRepository { /// /// Retrieves the administrative settings entry from the Database. /// /// An object containing the settings for the specified module. Returns if the module is not found. Models.AdminSetting GetAdminSetting(); /// /// Updates the administrative settings with the specified values. /// /// The new administrative settings to apply. Cannot be null. /// The updated object reflecting the applied changes. Models.AdminSetting SetAdminSettings(Models.AdminSetting adminSetting); } /// /// Implementation of the interface for managing admin settings in the database. /// public class AdminSettingsRepository : IAdminSettingsRepository, ITransientService { private readonly IDbContextFactory _factory; public AdminSettingsRepository(IDbContextFactory factory) { _factory = factory; } public AdminSetting GetAdminSetting() { using var db = _factory.CreateDbContext(); return db.AdminSettings.First(); } public AdminSetting SetAdminSettings(AdminSetting adminSetting) { using var db = _factory.CreateDbContext(); db.Entry(adminSetting).State = EntityState.Modified; db.SaveChanges(); return adminSetting; } } }