diff --git a/PrototypWPFHAG/Images/pdf-icon.png b/PrototypWPFHAG/Images/pdf-icon.png new file mode 100644 index 0000000..476c5b5 Binary files /dev/null and b/PrototypWPFHAG/Images/pdf-icon.png differ diff --git a/PrototypWPFHAG/MainWindow.xaml.cs b/PrototypWPFHAG/MainWindow.xaml.cs index 17895b2..4365c5e 100644 --- a/PrototypWPFHAG/MainWindow.xaml.cs +++ b/PrototypWPFHAG/MainWindow.xaml.cs @@ -42,7 +42,7 @@ public partial class MainWindow : MetroWindow con.Open(); // Check for correct UserName - string userQuery = "SELECT COUNT(*) FROM \"User\" WHERE \"UserName\" = @username"; + string userQuery = "SELECT COUNT(*) FROM \"users\" WHERE \"username\" = @username"; using (NpgsqlCommand userCmd = new NpgsqlCommand(userQuery, con)) { userCmd.Parameters.AddWithValue("@username", username); @@ -55,7 +55,7 @@ public partial class MainWindow : MetroWindow } // Check for correct Password - string pwQuery = "SELECT COUNT(*) FROM \"User\" WHERE \"UserName\" = @username AND \"Password\" = @password"; + string pwQuery = "SELECT COUNT(*) FROM \"users\" WHERE \"username\" = @username AND \"password\" = @password"; using (NpgsqlCommand pwCmd = new NpgsqlCommand(pwQuery, con)) { pwCmd.Parameters.AddWithValue("@username", username); diff --git a/PrototypWPFHAG/PdfServiceClient.cs b/PrototypWPFHAG/PdfServiceClient.cs new file mode 100644 index 0000000..3ecfb8f --- /dev/null +++ b/PrototypWPFHAG/PdfServiceClient.cs @@ -0,0 +1,52 @@ +using System.Net.Http; +using System.Text.Json; +using System.Text.Json.Serialization; +using System.Threading.Tasks; + +public class DocumentResponse +{ + [JsonPropertyName("documents")] // Konsistent mit Such-Endpoint + public List Documents { get; set; } +} + +public class PdfServiceClient +{ + private readonly HttpClient _httpClient; + private const string BaseUrl = "http://localhost:8000"; // Microservice-URL + + public PdfServiceClient() + { + _httpClient = new HttpClient + { + BaseAddress = new Uri(BaseUrl), Timeout = TimeSpan.FromSeconds(30) + }; + } + + public async Task GetDocumentContentAsync(int documentId) + { + var response = await _httpClient.GetAsync($"{BaseUrl}/documents/{documentId}/markdown"); + response.EnsureSuccessStatusCode(); + var json = await response.Content.ReadAsStringAsync(); + var result = JsonSerializer.Deserialize(json); + return result.GetProperty("content").GetString(); + } + + public async Task> SearchDocumentsAsync(string query) + { + var response = await _httpClient.GetAsync($"{BaseUrl}/documents/search?query={query}"); + response.EnsureSuccessStatusCode(); + var json = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize>(json); + } +} + +public class SearchResult +{ + [JsonPropertyName("id")] + public int Id { get; set; } + + [JsonPropertyName("filename")] + public string Filename { get; set; } + [JsonPropertyName("content")] + public string Content { get; set; } +} diff --git a/PrototypWPFHAG/PrototypWPFHAG.csproj b/PrototypWPFHAG/PrototypWPFHAG.csproj index 0422d05..334273d 100644 --- a/PrototypWPFHAG/PrototypWPFHAG.csproj +++ b/PrototypWPFHAG/PrototypWPFHAG.csproj @@ -14,6 +14,7 @@ + @@ -31,4 +32,8 @@ + + + + diff --git a/PrototypWPFHAG/SearchWindow.xaml b/PrototypWPFHAG/SearchWindow.xaml index 72ac88d..a8b50c6 100644 --- a/PrototypWPFHAG/SearchWindow.xaml +++ b/PrototypWPFHAG/SearchWindow.xaml @@ -1,69 +1,204 @@ - + Title="PDF-Verwaltung (Admin)" Height="600" Width="1000" + WindowTitleBrush="FireBrick" + Icon="pack://application:,,,/Images/databaseicon.png"> - + + - - + + + + - - + + - - + + - - - + + + + + + + + + + - -