Module.EventRegistration/Server/Repository/AnmeldeToolRepository.cs
2025-04-07 11:47:28 +02:00

66 lines
2.1 KiB
C#

using Microsoft.EntityFrameworkCore;
using System.Linq;
using System.Collections.Generic;
using Oqtane.Modules;
namespace AdamGais.Module.AnmeldeTool.Repository
{
public class AnmeldeToolRepository : IAnmeldeToolRepository, ITransientService
{
private readonly IDbContextFactory<AnmeldeToolContext> _factory;
public AnmeldeToolRepository(IDbContextFactory<AnmeldeToolContext> factory)
{
_factory = factory;
}
public IEnumerable<Models.AnmeldeTool> GetAnmeldeTools(int ModuleId)
{
using var db = _factory.CreateDbContext();
return db.AnmeldeTool.Where(item => item.ModuleId == ModuleId).ToList();
}
public Models.AnmeldeTool GetAnmeldeTool(int AnmeldeToolId)
{
return GetAnmeldeTool(AnmeldeToolId, true);
}
public Models.AnmeldeTool GetAnmeldeTool(int AnmeldeToolId, bool tracking)
{
using var db = _factory.CreateDbContext();
if (tracking)
{
return db.AnmeldeTool.Find(AnmeldeToolId);
}
else
{
return db.AnmeldeTool.AsNoTracking().FirstOrDefault(item => item.AnmeldeToolId == AnmeldeToolId);
}
}
public Models.AnmeldeTool AddAnmeldeTool(Models.AnmeldeTool AnmeldeTool)
{
using var db = _factory.CreateDbContext();
db.AnmeldeTool.Add(AnmeldeTool);
db.SaveChanges();
return AnmeldeTool;
}
public Models.AnmeldeTool UpdateAnmeldeTool(Models.AnmeldeTool AnmeldeTool)
{
using var db = _factory.CreateDbContext();
db.Entry(AnmeldeTool).State = EntityState.Modified;
db.SaveChanges();
return AnmeldeTool;
}
public void DeleteAnmeldeTool(int AnmeldeToolId)
{
using var db = _factory.CreateDbContext();
Models.AnmeldeTool AnmeldeTool = db.AnmeldeTool.Find(AnmeldeToolId);
db.AnmeldeTool.Remove(AnmeldeTool);
db.SaveChanges();
}
}
}