From ab800124e86f9bb9d2e4737f3b3faf4bc7ae53c4 Mon Sep 17 00:00:00 2001 From: chrisbell Date: Tue, 6 Jan 2026 19:48:48 -0600 Subject: [PATCH] control and databse stuff for documents --- .../CritterFolio/Controls/DocumentItem.axaml | 30 ++++++++ .../Controls/DocumentItem.axaml.cs | 73 +++++++++++++++++++ .../CritterFolio/DataModels/Document.cs | 1 + .../CritterFolio/Pages/CritterPage.axaml | 21 ++++-- .../CritterFolio/Pages/CritterPage.axaml.cs | 4 - .../CritterFolio/Services/DatabaseService.cs | 50 +++++++++++++ 6 files changed, 169 insertions(+), 10 deletions(-) create mode 100644 critterfolio/CritterFolio/CritterFolio/Controls/DocumentItem.axaml create mode 100644 critterfolio/CritterFolio/CritterFolio/Controls/DocumentItem.axaml.cs diff --git a/critterfolio/CritterFolio/CritterFolio/Controls/DocumentItem.axaml b/critterfolio/CritterFolio/CritterFolio/Controls/DocumentItem.axaml new file mode 100644 index 0000000..6c5353b --- /dev/null +++ b/critterfolio/CritterFolio/CritterFolio/Controls/DocumentItem.axaml @@ -0,0 +1,30 @@ + + + + + + + + + - - + @@ -32,10 +38,13 @@ - - - - + + + + + + + diff --git a/critterfolio/CritterFolio/CritterFolio/Pages/CritterPage.axaml.cs b/critterfolio/CritterFolio/CritterFolio/Pages/CritterPage.axaml.cs index 2b20dce..8240795 100644 --- a/critterfolio/CritterFolio/CritterFolio/Pages/CritterPage.axaml.cs +++ b/critterfolio/CritterFolio/CritterFolio/Pages/CritterPage.axaml.cs @@ -278,11 +278,7 @@ public partial class CritterPage : Page try { - await using var stream = await file.OpenReadAsync(); - // using var streamReader = new StreamReader(stream); - // var fileContent = await streamReader.ReadToEndAsync(); - var bmp = new Bitmap(stream); var path = Path.Combine(Sys.UserDataPath, "ImageCache", $"{_critter.Id}-{_critter.Name}.jpg"); bmp.Save(path, 5); diff --git a/critterfolio/CritterFolio/CritterFolio/Services/DatabaseService.cs b/critterfolio/CritterFolio/CritterFolio/Services/DatabaseService.cs index 0c7d9d5..c9ebba3 100644 --- a/critterfolio/CritterFolio/CritterFolio/Services/DatabaseService.cs +++ b/critterfolio/CritterFolio/CritterFolio/Services/DatabaseService.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Threading.Tasks; using CritterFolio.DataModels; using Microsoft.VisualBasic.FileIO; @@ -79,4 +80,53 @@ public static class DatabaseService } #endregion + + #region Document operations + + public static async Task AddDocument(Document document) + { + await Init(); + var result = await _db?.InsertAsync(document)!; + return !(result <= 0); + } + + public static async Task UpdateDocument(Document document) + { + await Init(); + return await _db?.UpdateAsync(document)! != 0; + } + + public static async Task DeleteDocument(Document document) + { + await Init(); + return await _db?.DeleteAsync(document)! != 0; + } + + public static async Task DeleteDocument(int id) + { + await Init(); + return await _db?.DeleteAsync(id)! != 0; + } + + public static async Task> GetAllDocuments() + { + await Init(); + var result = await _db?.Table().ToListAsync()!; + return result ?? []; + } + + public static async Task> GetAllDocumentsForCritter(int critterId) + { + await Init(); + var result = await _db?.Table().Where(d => d.CritterId == critterId).ToListAsync()!; + return result ?? []; + } + + public static async Task GetDocument(int id) + { + await Init(); + return _db?.GetAsync(id).Result; + } + + #endregion } \ No newline at end of file