New: Report-System using globally available Interfaces.

This commit is contained in:
2026-02-12 19:01:30 +01:00
parent a94527f294
commit 28925a3cfa
21 changed files with 847 additions and 8 deletions

View File

@@ -0,0 +1,77 @@
using Microsoft.EntityFrameworkCore;
using System.Linq;
using System.Collections.Generic;
using Oqtane.Modules;
using SZUAbsolventenverein.Module.AdminModules.Repository;
using SZUAbsolventenverein.Module.ReportSystem.Models;
namespace SZUAbsolventenverein.Module.ReportSystem.Repository
{
public interface IReportingRepository
{
IEnumerable<Reporting> GetReportings();
Reporting GetReporting(int ReportingID);
Reporting GetReporting(int ReportingID, bool tracking);
Reporting AddReporting(Reporting Reporting);
Reporting UpdateReporting(Reporting Reporting);
void DeleteReporting(int ReportingID);
}
public class ReportingRepository : IReportingRepository, ITransientService
{
private readonly IDbContextFactory<ReportingContext> _factory;
public ReportingRepository(IDbContextFactory<ReportingContext> factory)
{
_factory = factory;
}
public IEnumerable<Reporting> GetReportings()
{
using var db = _factory.CreateDbContext();
return db.Reportings.ToList();
}
public Reporting GetReporting(int ReportingID)
{
return GetReporting(ReportingID, true);
}
public Reporting GetReporting(int ReportingID, bool tracking)
{
using var db = _factory.CreateDbContext();
if (tracking)
{
return db.Reportings.Find(ReportingID);
}
else
{
return db.Reportings.AsNoTracking().FirstOrDefault(item => item.ReportingID == ReportingID);
}
}
public Reporting AddReporting(Reporting Reporting)
{
using var db = _factory.CreateDbContext();
db.Reportings.Add(Reporting);
db.SaveChanges();
return Reporting;
}
public Reporting UpdateReporting(Reporting Reporting)
{
using var db = _factory.CreateDbContext();
db.Entry(Reporting).State = EntityState.Modified;
db.SaveChanges();
return Reporting;
}
public void DeleteReporting(int ReportingID)
{
using var db = _factory.CreateDbContext();
var Reporting = db.Reportings.Find(ReportingID);
db.Reportings.Remove(Reporting);
db.SaveChanges();
}
}
}