Added test data and fixed family tree styles
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user