using Microsoft.EntityFrameworkCore; using System.Linq; using System.Collections.Generic; using Oqtane.Modules; namespace SZUAbsolventenverein.Module.AdminModules.Repository { public interface IAdminModulesRepository { IEnumerable GetAdminModuless(int ModuleId); Models.AdminModules GetAdminModules(int AdminModulesId); Models.AdminModules GetAdminModules(int AdminModulesId, bool tracking); Models.AdminModules AddAdminModules(Models.AdminModules AdminModules); Models.AdminModules UpdateAdminModules(Models.AdminModules AdminModules); void DeleteAdminModules(int AdminModulesId); } public class AdminModulesRepository : IAdminModulesRepository, ITransientService { private readonly IDbContextFactory _factory; public AdminModulesRepository(IDbContextFactory factory) { _factory = factory; } public IEnumerable GetAdminModuless(int ModuleId) { using var db = _factory.CreateDbContext(); return db.AdminModules.Where(item => item.ModuleId == ModuleId).ToList(); } public Models.AdminModules GetAdminModules(int AdminModulesId) { return GetAdminModules(AdminModulesId, true); } public Models.AdminModules GetAdminModules(int AdminModulesId, bool tracking) { using var db = _factory.CreateDbContext(); if (tracking) { return db.AdminModules.Find(AdminModulesId); } else { return db.AdminModules.AsNoTracking().FirstOrDefault(item => item.AdminModulesId == AdminModulesId); } } public Models.AdminModules AddAdminModules(Models.AdminModules AdminModules) { using var db = _factory.CreateDbContext(); db.AdminModules.Add(AdminModules); db.SaveChanges(); return AdminModules; } public Models.AdminModules UpdateAdminModules(Models.AdminModules AdminModules) { using var db = _factory.CreateDbContext(); db.Entry(AdminModules).State = EntityState.Modified; db.SaveChanges(); return AdminModules; } public void DeleteAdminModules(int AdminModulesId) { using var db = _factory.CreateDbContext(); Models.AdminModules AdminModules = db.AdminModules.Find(AdminModulesId); db.AdminModules.Remove(AdminModules); db.SaveChanges(); } } }