laatzen/LaaProductionWeb/LaaProduction.Personalization/Repositories/EquipmentsRepository.cs
2023-08-21 10:44:57 +02:00

241 lines
11 KiB
C#

namespace LaaProduction.Personalization.Repositories
{
using LaaProduction.Personalization.Models;
using LaaProduction.Personalization.Repositories.Interfaces;
using LaaProductionSQL.Interfaces;
using System.Collections.Generic;
internal class EquipmentsRepository : IEquipmentsRepository
{
private readonly ISQLConnection sqlConnection;
public EquipmentsRepository(ISQLConnection sqlConnection)
=> this.sqlConnection = sqlConnection;
public int Add(PruefmittelPruefung model)
=> this.sqlConnection
.CreateCommand($@"
INSERT
INTO [PruefmittelPruefung]
( [SoftwareId]
, [Pruefmittel]
, [PruefmittelNr]
, [Pruefintervall]
, [Erforderlich]
, [PruefdatumIst]
, [PruefdatumSoll]
, [Bemerkung]
, [EmailFrom]
, [EmailAn]
, [InCcAn]
, [Betreff]
, [Nachricht]
, [Meldung]
, [Schedule])
OUTPUT [inserted].[PruefmittelId]
VALUES (@{nameof(model.SoftwareId)}
, @{nameof(model.Pruefmittel)}
, @{nameof(model.PruefmittelNr)}
, @{nameof(model.Pruefintervall)}
, @{nameof(model.Erforderlich)}
, @{nameof(model.PruefdatumIst)}
, @{nameof(model.PruefdatumSoll)}
, @{nameof(model.Bemerkung)}
, @{nameof(model.EmailFrom)}
, @{nameof(model.EmailAn)}
, @{nameof(model.InCcAn)}
, @{nameof(model.Betreff)}
, @{nameof(model.Nachricht)}
, @{nameof(model.Meldung)}
, @{nameof(model.Schedule)})")
.SetParameter(nameof(model.SoftwareId), model.SoftwareId)
.SetParameter(nameof(model.Pruefmittel), model.Pruefmittel)
.SetParameter(nameof(model.PruefmittelNr), model.PruefmittelNr)
.SetParameter(nameof(model.Pruefintervall), model.Pruefintervall)
.SetParameter(nameof(model.Erforderlich), model.Erforderlich)
.SetParameter(nameof(model.PruefdatumIst), model.PruefdatumIst)
.SetParameter(nameof(model.PruefdatumSoll), model.PruefdatumSoll)
.SetParameter(nameof(model.Bemerkung), model.Bemerkung)
.SetParameter(nameof(model.EmailFrom), model.EmailFrom)
.SetParameter(nameof(model.EmailAn), model.EmailAn)
.SetParameter(nameof(model.InCcAn), model.InCcAn)
.SetParameter(nameof(model.Betreff), model.Betreff)
.SetParameter(nameof(model.Nachricht), model.Nachricht)
.SetParameter(nameof(model.Meldung), model.Meldung)
.SetParameter(nameof(model.Schedule), model.Schedule)
.ExecuteScalar(x => x.GetInt());
public PruefmittelPruefung FindById(int pruefmittelId)
=> this.sqlConnection
.CreateCommand($@"
SELECT [PruefmittelId]
, [SoftwareId]
, [Pruefmittel]
, [PruefmittelNr]
, [Pruefintervall]
, [Erforderlich]
, [PruefdatumIst]
, [PruefdatumSoll]
, [Bemerkung]
, [EmailFrom]
, [EmailAn]
, [InCcAn]
, [Betreff]
, [Nachricht]
, [Meldung]
, [Schedule]
FROM [PruefmittelPruefung]
WHERE [PruefmittelId] = @{nameof(pruefmittelId)}")
.SetParameter(nameof(pruefmittelId), pruefmittelId)
.FirstOrDefault(x => new PruefmittelPruefung
{
PruefmittelId = x.GetInt(),
SoftwareId = x.GetSmallint(),
Pruefmittel = x.GetString(),
PruefmittelNr = x.GetString(),
Pruefintervall = x.GetInt(),
Erforderlich = x.GetBool(),
PruefdatumIst = x.GetDate(),
PruefdatumSoll = x.GetDate(),
Bemerkung = x.GetString(),
EmailFrom = x.GetString(),
EmailAn = x.GetString(),
InCcAn = x.GetString(),
Betreff = x.GetString(),
Nachricht = x.GetString(),
Meldung = x.GetString(),
Schedule = x.GetString()
});
public IEnumerable<PruefmittelPruefung> SelectAll(int softwareId)
=> this.sqlConnection
.CreateCommand($@"
SELECT [PruefmittelId]
, [SoftwareId]
, [Pruefmittel]
, [PruefmittelNr]
, [Pruefintervall]
, [Erforderlich]
, [PruefdatumIst]
, [PruefdatumSoll]
, [Bemerkung]
, [EmailFrom]
, [EmailAn]
, [InCcAn]
, [Betreff]
, [Nachricht]
, [Meldung]
, [Schedule]
FROM [PruefmittelPruefung]
WHERE [SoftwareId] = @{nameof(softwareId)}")
.SetParameter(nameof(softwareId), softwareId)
.ExecuteReader(x => new PruefmittelPruefung
{
PruefmittelId = x.GetInt(),
SoftwareId = x.GetSmallint(),
Pruefmittel = x.GetString(),
PruefmittelNr = x.GetString(),
Pruefintervall = x.GetInt(),
Erforderlich = x.GetBool(),
PruefdatumIst = x.GetDate(),
PruefdatumSoll = x.GetDate(),
Bemerkung = x.GetString(),
EmailFrom = x.GetString(),
EmailAn = x.GetString(),
InCcAn = x.GetString(),
Betreff = x.GetString(),
Nachricht = x.GetString(),
Meldung = x.GetString(),
Schedule = x.GetString()
});
public int Remove(int pruefmittelId)
=> this.sqlConnection
.CreateCommand($@"
DELETE
FROM [PruefmittelPruefung]
WHERE [PruefmittelId] = @{nameof(pruefmittelId)}")
.SetParameter(nameof(pruefmittelId), pruefmittelId)
.ExecuteNonQuery();
public IEnumerable<PruefmittelPruefung> SelectAll()
=> this.sqlConnection
.CreateCommand(@"
SELECT [PruefmittelId]
, [SoftwareId]
, [Pruefmittel]
, [PruefmittelNr]
, [Pruefintervall]
, [Erforderlich]
, [PruefdatumIst]
, [PruefdatumSoll]
, [Bemerkung]
, [EmailFrom]
, [EmailAn]
, [InCcAn]
, [Betreff]
, [Nachricht]
, [Meldung]
, [Schedule]
FROM [PruefmittelPruefung]")
.ExecuteReader(x => new PruefmittelPruefung
{
PruefmittelId = x.GetInt(),
SoftwareId = x.GetSmallint(),
Pruefmittel = x.GetString(),
PruefmittelNr = x.GetString(),
Pruefintervall = x.GetInt(),
Erforderlich = x.GetBool(),
PruefdatumIst = x.GetDate(),
PruefdatumSoll = x.GetDate(),
Bemerkung = x.GetString(),
EmailFrom = x.GetString(),
EmailAn = x.GetString(),
InCcAn = x.GetString(),
Betreff = x.GetString(),
Nachricht = x.GetString(),
Meldung = x.GetString(),
Schedule = x.GetString()
});
public int Update(PruefmittelPruefung model)
=> this.sqlConnection
.CreateCommand($@"
UPDATE [PruefmittelPruefung]
SET [SoftwareId] = @{nameof(model.SoftwareId)}
, [Pruefmittel] = @{nameof(model.Pruefmittel)}
, [PruefmittelNr] = @{nameof(model.PruefmittelNr)}
, [Pruefintervall] = @{nameof(model.Pruefintervall)}
, [Erforderlich] = @{nameof(model.Erforderlich)}
, [PruefdatumIst] = @{nameof(model.PruefdatumIst)}
, [PruefdatumSoll] = @{nameof(model.PruefdatumSoll)}
, [Bemerkung] = @{nameof(model.Bemerkung)}
, [EmailFrom] = @{nameof(model.EmailFrom)}
, [EmailAn] = @{nameof(model.EmailAn)}
, [InCcAn] = @{nameof(model.InCcAn)}
, [Betreff] = @{nameof(model.Betreff)}
, [Nachricht] = @{nameof(model.Nachricht)}
, [Meldung] = @{nameof(model.Meldung)}
, [Schedule] = @{nameof(model.Schedule)}
WHERE [PruefmittelId] = @{nameof(model.PruefmittelId)}")
.SetParameter(nameof(model.SoftwareId), model.SoftwareId)
.SetParameter(nameof(model.PruefmittelId), model.PruefmittelId)
.SetParameter(nameof(model.Pruefmittel), model.Pruefmittel)
.SetParameter(nameof(model.PruefmittelNr), model.PruefmittelNr)
.SetParameter(nameof(model.Pruefintervall), model.Pruefintervall)
.SetParameter(nameof(model.Erforderlich), model.Erforderlich)
.SetParameter(nameof(model.PruefdatumIst), model.PruefdatumIst)
.SetParameter(nameof(model.PruefdatumSoll), model.PruefdatumSoll)
.SetParameter(nameof(model.Bemerkung), model.Bemerkung)
.SetParameter(nameof(model.EmailFrom), model.EmailFrom)
.SetParameter(nameof(model.EmailAn), model.EmailAn)
.SetParameter(nameof(model.InCcAn), model.InCcAn)
.SetParameter(nameof(model.Betreff), model.Betreff)
.SetParameter(nameof(model.Nachricht), model.Nachricht)
.SetParameter(nameof(model.Meldung), model.Meldung)
.SetParameter(nameof(model.Schedule), model.Schedule)
.ExecuteNonQuery();
}
}