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 _factory; public AnmeldeToolRepository(IDbContextFactory factory) { _factory = factory; } public IEnumerable 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(); } } }