Added test data and fixed family tree styles

This commit is contained in:
2026-01-07 21:54:08 -06:00
parent ed4c560cab
commit ab1d286f8c
4 changed files with 71 additions and 13 deletions

View File

@@ -52,8 +52,11 @@ public partial class FamilyTreePage : Page
{ {
var border = new Border var border = new Border
{ {
Classes = { "critter-card child" }, Classes = { "critter-card", "child"},
Child = new TextBlock {Text = $"[Child]\n{child.Name}"} Child = new TextBlock
{
Text = $"[Child]\n{child.Name}"
}
}; };
ChildStack.Children.Add(border); ChildStack.Children.Add(border);

View File

@@ -6,12 +6,11 @@
x:Class="CritterFolio.Pages.TestPage"> x:Class="CritterFolio.Pages.TestPage">
<ScrollViewer VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> <ScrollViewer VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<StackPanel Spacing="5"> <StackPanel Spacing="5">
<Label FontSize="20" HorizontalAlignment="Stretch">Database operations</Label>
<Button HorizontalAlignment="Stretch" Classes="normal">Insert test data</Button>
<Button x:Name="ClearDbButton" HorizontalAlignment="Stretch" Classes="normal">Clear database</Button>
<Button x:Name="ReInitButton" HorizontalAlignment="Stretch" Classes="normal">Re-init Database</Button>
<Label FontSize="20" HorizontalAlignment="Stretch">Logger</Label> <Label FontSize="20" HorizontalAlignment="Stretch">Logger</Label>
<Button x:Name="OpenLogButton" HorizontalAlignment="Stretch" Classes="normal">Open Log File</Button> <Button x:Name="OpenLogButton" HorizontalAlignment="Stretch" Classes="normal">Open Log File</Button>
<Label FontSize="20" HorizontalAlignment="Stretch">Database operations</Label>
<Button x:Name="TestDataButton" HorizontalAlignment="Stretch" Classes="normal">Insert test data</Button>
<Button x:Name="ClearDbButton" HorizontalAlignment="Stretch" Classes="normal">Clear database</Button>
</StackPanel> </StackPanel>
</ScrollViewer> </ScrollViewer>
</UserControl> </UserControl>

View File

@@ -5,6 +5,7 @@ using Avalonia.Controls;
using Avalonia.Interactivity; using Avalonia.Interactivity;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
using Avalonia.Platform.Storage; using Avalonia.Platform.Storage;
using CritterFolio.DataModels;
using CritterFolio.Services; using CritterFolio.Services;
namespace CritterFolio.Pages; namespace CritterFolio.Pages;
@@ -17,11 +18,57 @@ public partial class TestPage : Page
{ {
InitializeComponent(); InitializeComponent();
TestDataButton.Click += TestDataButtonClicked;
ClearDbButton.Click += ClearDbButtonClicked; ClearDbButton.Click += ClearDbButtonClicked;
ReInitButton.Click += ReInitButtonClicked;
OpenLogButton.Click += OpenLogButtonClicked; OpenLogButton.Click += OpenLogButtonClicked;
} }
private async void TestDataButtonClicked(object? sender, RoutedEventArgs e)
{
var result = await DialogHelper.ShowConfirmationDialog("Are you sure you want to insert test data into the database?");
if (!result) return;
try
{
var toriel = new Critter
{
Name = "Toriel",
DateOfBirth = new DateTime(2018, 07, 04),
Gender = Gender.Female,
Notes = "The very first goat on the farm, found on July 4th 2019 abandoned on the roadside. Named after Toriel from Undertale.",
};
await DatabaseService.AddCritter(toriel);
var polities = new Critter()
{
Name = "Polities",
DateOfBirth = new DateTime(2024, 01, 01),
Gender = Gender.Male,
Notes = "The first pure bred Nigerian Dwarf purchased on the farm. Named after Polities from Homer's Odyssey.",
};
await DatabaseService.AddCritter(polities);
var torielId = DatabaseService.GetCritter("Toriel").Id;
var poliId = DatabaseService.GetCritter("Polities").Id;
var jessie = new Critter
{
Name = "Jessie",
DateOfBirth = new DateTime(2025, 04, 05),
Gender = Gender.Male,
Notes = "Polities' first son. Named after Jessie from The Last Of Us.",
};
await DatabaseService.AddCritter(jessie);
}
catch (Exception exception)
{
await DialogHelper.ShowMessage($"[ERROR] {exception.Message}");
Logger.LogToFile($"[ERROR] {exception.Message}");
}
}
private void OpenLogButtonClicked(object? sender, RoutedEventArgs args) private void OpenLogButtonClicked(object? sender, RoutedEventArgs args)
{ {
Sys.Navigation?.PushPage(new LogPage()); Sys.Navigation?.PushPage(new LogPage());
@@ -30,6 +77,9 @@ public partial class TestPage : Page
private async void ClearDbButtonClicked(object? sender, RoutedEventArgs args) private async void ClearDbButtonClicked(object? sender, RoutedEventArgs args)
{ {
var result = await DialogHelper.ShowConfirmationDialog("Are you sure you want to clear the database?");
if (!result) return;
try try
{ {
await DatabaseService.ClearAllTables(); await DatabaseService.ClearAllTables();
@@ -40,11 +90,7 @@ public partial class TestPage : Page
Console.WriteLine(ex.ToString()); Console.WriteLine(ex.ToString());
} }
} }
private async void ReInitButtonClicked(object? sender, RoutedEventArgs e)
{
await DatabaseService.Init();
}
public override void Refresh() public override void Refresh()
{ {
@@ -55,6 +101,8 @@ public partial class TestPage : Page
protected override void ClearConnections() protected override void ClearConnections()
{ {
// TestDataButton.Click -= TestDataButtonClicked;
// ClearDbButton.Click -= ClearDbButtonClicked;
// OpenLogButton.Click -= OpenLogButtonClicked;
} }
} }

View File

@@ -78,6 +78,14 @@ public static class DatabaseService
await Init(); await Init();
return _db?.GetAsync<Critter>(id).Result; return _db?.GetAsync<Critter>(id).Result;
} }
public static async Task<Critter?> GetCritter(string name)
{
await Init();
return await _db?.Table<Critter>()
.Where(c => c.Name == name)
.FirstOrDefaultAsync()!;
}
#endregion #endregion