Files
Module.AdminModules/Server/Repository/ReportingSystem/ReportingRepository.cs

78 lines
2.4 KiB
C#

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();
}
}
}