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;
+
-
-
+
+
-
-
+
+
@@ -83,63 +89,26 @@
@code {
- List imagePaths = new List();
string selectedImage;
string infoText = "Info Text";
string popupStyle = "display: none;";
+ IEnumerable? _bildInfos;
+
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
- // Get the physical path to the folder
- string folderPath = Path.Combine(_environment.WebRootPath, "generated_images");
-
- if (Directory.Exists(folderPath))
- {
- // Load the image file names from the folder
- var imageFiles = Directory.GetFiles(folderPath, "*.jpg");
-
- // Get the relative paths to the images
- imagePaths = imageFiles.Select(file => file.Replace(_environment.WebRootPath, "").Replace("\\", "/")).ToList();
- }
+ _bildInfos = await BildInfoData.GetAllBildInfosAsync();
}
- private async void ShowImageInfo(string imagePath)
+ private async void ShowImageInfo(BildInfoModel bildInfo)
{
- selectedImage = imagePath;
+ selectedImage = bildInfo.Dateiname;
popupStyle = "display: block;";
- infoText = await GetInfoTextForImageAsync(imagePath);
- }
-
- private async Task GetInfoTextForImageAsync(string imagePath)
- {
- // Bestimme den Ordnerpfad, in dem sich die Bilder und die info_texts.txt Datei befinden
- string folderPath = Path.Combine(_environment.WebRootPath, "generated_images");
-
- // Bestimme den Pfad zur info_texts.txt Datei
- string infoTextsFilePath = Path.Combine(folderPath, "info_texts.txt");
-
- // Überprüfe, ob die Datei existiert
- if (!File.Exists(infoTextsFilePath))
- return $"Kein Infotext für {imagePath} gefunden.";
-
- // Lies alle Zeilen der Datei
- var lines = await File.ReadAllLinesAsync(infoTextsFilePath);
- string adaptedImagePath = imagePath.Substring(1) + ":";
-
- // Durchsuche jede Zeile nach dem gegebenen imagePath
- foreach (var line in lines)
- {
- if (line.StartsWith(adaptedImagePath)) // Überprüft, ob die Zeile mit dem Dateinamen des Bildes beginnt
- {
- // Trenne den Dateinamen und den Infotext und gib den Infotext zurück
- return line.Split(new[] { ':' }, 2).LastOrDefault()?.Trim();
- }
- }
-
- return $"Kein Infotext für {imagePath} gefunden.";
+ WunschInfoModel wunschInfo = await WunschInfoData.GetWunschInfoAsync(bildInfo.WunschId);
+ infoText = wunschInfo.BildBeschreibung;
}
private void CloseImageInfo()
diff --git a/KIKunstKirstenKlöckner/Shared/MainLayout.razor b/KIKunstKirstenKlöckner/Shared/MainLayout.razor
index 52af9e6..74e506d 100644
--- a/KIKunstKirstenKlöckner/Shared/MainLayout.razor
+++ b/KIKunstKirstenKlöckner/Shared/MainLayout.razor
@@ -36,7 +36,7 @@
Über Kirsten Klöckner
- Galerier
+ Galerie
diff --git a/KiKunstDatenbank/KiKunstDatenbank.sqlproj b/KiKunstDatenbank/KiKunstDatenbank.sqlproj
index 39b284d..cbef593 100644
--- a/KiKunstDatenbank/KiKunstDatenbank.sqlproj
+++ b/KiKunstDatenbank/KiKunstDatenbank.sqlproj
@@ -66,6 +66,8 @@
+
+
diff --git a/KiKunstDatenbank/dpo/StoredProcedures/spBildInfo_GetAll.sql b/KiKunstDatenbank/dpo/StoredProcedures/spBildInfo_GetAll.sql
new file mode 100644
index 0000000..a397dc9
--- /dev/null
+++ b/KiKunstDatenbank/dpo/StoredProcedures/spBildInfo_GetAll.sql
@@ -0,0 +1,6 @@
+CREATE PROCEDURE [dbo].[spBildInfo_GetAll]
+AS
+BEGIN
+ SELECT Id, Datum, Dateiname, ImageModel, WunschId
+ FROM [dbo].[BildInfo];
+END
diff --git a/KiKunstDatenbank/dpo/StoredProcedures/spWunschInfo_Get.sql b/KiKunstDatenbank/dpo/StoredProcedures/spWunschInfo_Get.sql
new file mode 100644
index 0000000..05d4c06
--- /dev/null
+++ b/KiKunstDatenbank/dpo/StoredProcedures/spWunschInfo_Get.sql
@@ -0,0 +1,8 @@
+CREATE PROCEDURE [dbo].[spWunschInfo_Get]
+ @Id INT
+AS
+BEGIN
+ SELECT Id, Wunsch, BildPrompt, BildBeschreibung, Datum, GPTModel
+ FROM [dbo].[WunschInfo]
+ WHERE Id = @Id;
+END