Files
Module.HallOfFame/Server/Repository/HallOfFameRepository.cs
Adam Gaiswinkler 5dfa690432 Initial commit
2026-01-02 22:52:11 +01:00

76 lines
2.5 KiB
C#

using Microsoft.EntityFrameworkCore;
using System.Linq;
using System.Collections.Generic;
using Oqtane.Modules;
namespace SZUAbsolventenverein.Module.HallOfFame.Repository
{
public interface IHallOfFameRepository
{
IEnumerable<Models.HallOfFame> GetHallOfFames(int ModuleId);
Models.HallOfFame GetHallOfFame(int HallOfFameId);
Models.HallOfFame GetHallOfFame(int HallOfFameId, bool tracking);
Models.HallOfFame AddHallOfFame(Models.HallOfFame HallOfFame);
Models.HallOfFame UpdateHallOfFame(Models.HallOfFame HallOfFame);
void DeleteHallOfFame(int HallOfFameId);
}
public class HallOfFameRepository : IHallOfFameRepository, ITransientService
{
private readonly IDbContextFactory<HallOfFameContext> _factory;
public HallOfFameRepository(IDbContextFactory<HallOfFameContext> factory)
{
_factory = factory;
}
public IEnumerable<Models.HallOfFame> GetHallOfFames(int ModuleId)
{
using var db = _factory.CreateDbContext();
return db.HallOfFame.Where(item => item.ModuleId == ModuleId).ToList();
}
public Models.HallOfFame GetHallOfFame(int HallOfFameId)
{
return GetHallOfFame(HallOfFameId, true);
}
public Models.HallOfFame GetHallOfFame(int HallOfFameId, bool tracking)
{
using var db = _factory.CreateDbContext();
if (tracking)
{
return db.HallOfFame.Find(HallOfFameId);
}
else
{
return db.HallOfFame.AsNoTracking().FirstOrDefault(item => item.HallOfFameId == HallOfFameId);
}
}
public Models.HallOfFame AddHallOfFame(Models.HallOfFame HallOfFame)
{
using var db = _factory.CreateDbContext();
db.HallOfFame.Add(HallOfFame);
db.SaveChanges();
return HallOfFame;
}
public Models.HallOfFame UpdateHallOfFame(Models.HallOfFame HallOfFame)
{
using var db = _factory.CreateDbContext();
db.Entry(HallOfFame).State = EntityState.Modified;
db.SaveChanges();
return HallOfFame;
}
public void DeleteHallOfFame(int HallOfFameId)
{
using var db = _factory.CreateDbContext();
Models.HallOfFame HallOfFame = db.HallOfFame.Find(HallOfFameId);
db.HallOfFame.Remove(HallOfFame);
db.SaveChanges();
}
}
}