Saving to DB is done, Reading from DB to UI is done. Loading at startup is still missing...
56 lines
2.0 KiB
C#
56 lines
2.0 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using System.Linq;
|
|
using System.Collections.Generic;
|
|
using SZUAbsolventenverein.Module.AdminModules.Models;
|
|
using Oqtane.Modules;
|
|
|
|
namespace SZUAbsolventenverein.Module.AdminModules.Repository
|
|
{
|
|
/// <summary>
|
|
/// Repository to manage admin settings in the database.
|
|
/// </summary>
|
|
public interface IAdminSettingsRepository
|
|
{
|
|
/// <summary>
|
|
/// Retrieves the administrative settings entry from the Database.
|
|
/// </summary>
|
|
/// <returns>An <see cref="Models.AdminSetting"/> object containing the settings for the specified module. Returns <see
|
|
/// langword="null"/> if the module is not found.</returns>
|
|
Models.AdminSetting GetAdminSetting();
|
|
|
|
/// <summary>
|
|
/// Updates the administrative settings with the specified values.
|
|
/// </summary>
|
|
/// <param name="adminSetting">The new administrative settings to apply. Cannot be null.</param>
|
|
/// <returns>The updated <see cref="Models.AdminSetting"/> object reflecting the applied changes.</returns>
|
|
Models.AdminSetting SetAdminSettings(Models.AdminSetting adminSetting);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Implementation of the <see cref="IAdminSettingsRepository"/> interface for managing admin settings in the database.
|
|
/// </summary>
|
|
public class AdminSettingsRepository : IAdminSettingsRepository, ITransientService
|
|
{
|
|
private readonly IDbContextFactory<AdminModulesContext> _factory;
|
|
|
|
public AdminSettingsRepository(IDbContextFactory<AdminModulesContext> 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;
|
|
}
|
|
}
|
|
}
|