From e6a2db0753b09052c83db7f0bda59e68911f24a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Tue, 10 Oct 2023 18:56:05 +0200 Subject: [PATCH] Gallery verwendet Datenbank MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Menü: Fixed typo in Gallerie - Datenbanken-Funktionen dokumentiert --- DataAccess/Data/BildInfoData.cs | 31 ++++++--- DataAccess/Data/WunschInfoData.cs | 11 ++++ DataAccess/DbAccess/ISqlDataAccess.cs | 23 ++++++- DataAccess/DbAccess/SqlDataAccess.cs | 9 ++- KIKunstKirstenKlöckner/Pages/Gallery.razor | 65 +++++-------------- .../Shared/MainLayout.razor | 2 +- KiKunstDatenbank/KiKunstDatenbank.sqlproj | 2 + .../StoredProcedures/spBildInfo_GetAll.sql | 6 ++ .../dpo/StoredProcedures/spWunschInfo_Get.sql | 8 +++ 9 files changed, 94 insertions(+), 63 deletions(-) create mode 100644 KiKunstDatenbank/dpo/StoredProcedures/spBildInfo_GetAll.sql create mode 100644 KiKunstDatenbank/dpo/StoredProcedures/spWunschInfo_Get.sql diff --git a/DataAccess/Data/BildInfoData.cs b/DataAccess/Data/BildInfoData.cs index 86245a7..e2def08 100644 --- a/DataAccess/Data/BildInfoData.cs +++ b/DataAccess/Data/BildInfoData.cs @@ -1,14 +1,11 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.CompilerServices; -using System.Text; -using System.Threading.Tasks; -using DataAccess.DbAccess; +using DataAccess.DbAccess; using DataAccess.Models; namespace DataAccess.Data; +/// +/// Ermöglicht den Zugriff auf die BildInfo Datenbank. +/// public class BildInfoData { private readonly ISqlDataAccess _db; @@ -18,18 +15,34 @@ public class BildInfoData _db = db; } + /// + /// Fügt die gegebene BildInfo zur Datenbank hinzu und aktualisiert das -Feld mit dem entsprechenden Wert. + /// + /// Die BildInfo, die zur Datenbank hinzugefügt werden soll. public async Task AddBildInfoAsync(BildInfoModel bildInfo) { var id = await _db.LoadData("dbo.spBildInfo_Insert", bildInfo); bildInfo.Id = id.Single(); } - public async Task UpdateBildInfoDateinameAsync(BildInfoModel bildInfo) + /// + /// Aktualisiert das Dateiname-Feld der übergebenen BildInfo in der Datenbank. + /// + /// Die BildInfo deren Dateiname aktualisiert werden soll. + public Task UpdateBildInfoDateinameAsync(BildInfoModel bildInfo) { - await _db.SaveData("dbo.spBildInfo_UpdateFileName", + return _db.SaveData("dbo.spBildInfo_UpdateFileName", new { Id = bildInfo.Id, Dateiname = bildInfo.Dateiname, }); } + + /// + /// Gibt alle Bild Infos der Datenbank zurück. + /// + public Task> GetAllBildInfosAsync() + { + return _db.LoadData("dbo.spBildInfo_GetAll", new { }); + } } diff --git a/DataAccess/Data/WunschInfoData.cs b/DataAccess/Data/WunschInfoData.cs index c1d467e..26e0854 100644 --- a/DataAccess/Data/WunschInfoData.cs +++ b/DataAccess/Data/WunschInfoData.cs @@ -22,4 +22,15 @@ public class WunschInfoData var id = await _db.LoadData("dbo.spWunschInfo_Insert", wunschInfo); wunschInfo.Id = id.Single(); } + + /// + /// Gibt die WunschInfo mit der gegebenen Id zurück. + /// + /// Die Id der zu ladenen WunschInfo + /// Die WunschInfo mit der gegebenen Id + public async Task GetWunschInfoAsync(int wunschId) + { + var wunschInfo = await _db.LoadData("dbo.spWunschInfo_Get", new { Id = wunschId }); + return wunschInfo.Single(); + } } diff --git a/DataAccess/DbAccess/ISqlDataAccess.cs b/DataAccess/DbAccess/ISqlDataAccess.cs index ed3232e..c1a2103 100644 --- a/DataAccess/DbAccess/ISqlDataAccess.cs +++ b/DataAccess/DbAccess/ISqlDataAccess.cs @@ -1,7 +1,26 @@ namespace DataAccess.DbAccess; +/// +/// Bietet lesenden und schreibenden Zugriff auf eine Datenbank. +/// public interface ISqlDataAccess { - Task> LoadData(string storedProcedure, U parameters, string connectionId = "Default"); - Task SaveData(string storedProcedure, T parameters, string connectionId = "Default"); + /// + /// Führt die angegebene Stored Procedure aus. Diese Prozedur nimmt Parameter des Typs engegen und gibt ein Enumerable des Typs zurück. + /// + /// Der Typ der Parameter + /// Der Typ der Rückgabewerte + /// Der Name der Prozedur + /// Die Parameter für die Prozedur. + /// Die optionale Id des zu verwendenen Connection Strings. + Task> LoadData(string storedProcedure, TParameter parameters, string connectionId = "Default"); + + /// + /// Führt die angegebene Stored Procedure aus. Diese Prozedur nimmt Parameter des Typs engegen und gibt nichts zurück. + /// + /// Der Typ der Parameter + /// Der Name der Prozedur + /// Die Parameter für die Prozedur. + /// Die optionale Id des zu verwendenen Connection Strings. + Task SaveData(string storedProcedure, TParameter parameters, string connectionId = "Default"); } \ No newline at end of file diff --git a/DataAccess/DbAccess/SqlDataAccess.cs b/DataAccess/DbAccess/SqlDataAccess.cs index f5edcf0..1a331aa 100644 --- a/DataAccess/DbAccess/SqlDataAccess.cs +++ b/DataAccess/DbAccess/SqlDataAccess.cs @@ -5,6 +5,9 @@ using Dapper; namespace DataAccess.DbAccess; +/// +/// Bietet lesenden und schreibenden Zugriff auf eine Datenbank. +/// public class SqlDataAccess : ISqlDataAccess { private readonly IConfiguration _config; @@ -14,14 +17,14 @@ public class SqlDataAccess : ISqlDataAccess _config = config; } - public async Task> LoadData(string storedProcedure, U parameters, string connectionId = "Default") + public async Task> LoadData(string storedProcedure, TParameter parameters, string connectionId = "Default") { using IDbConnection connection = new SqlConnection(_config.GetConnectionString(connectionId)); - return await connection.QueryAsync(storedProcedure, parameters, commandType: CommandType.StoredProcedure); + return await connection.QueryAsync(storedProcedure, parameters, commandType: CommandType.StoredProcedure); } - public async Task SaveData(string storedProcedure, T parameters, string connectionId = "Default") + public async Task SaveData(string storedProcedure, TParameter parameters, string connectionId = "Default") { using IDbConnection connection = new SqlConnection(_config.GetConnectionString(connectionId)); diff --git a/KIKunstKirstenKlöckner/Pages/Gallery.razor b/KIKunstKirstenKlöckner/Pages/Gallery.razor index 94554da..9196388 100644 --- a/KIKunstKirstenKlöckner/Pages/Gallery.razor +++ b/KIKunstKirstenKlöckner/Pages/Gallery.razor @@ -1,5 +1,11 @@ @page "/gallery" +@using DataAccess.Data +@using DataAccess.Models + +@inject BildInfoData BildInfoData; +@inject WunschInfoData WunschInfoData; +
- -