Initial commit

This commit is contained in:
alphafetus committed 2023-10-09 11:11:48 -04:00
commit 8c7e1b917f
180 files changed
+7747

No files matched your search

+70
View File
@@ -0,0 +1,70 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModels="clr-namespace:PcgsInvUi.ViewModels"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="PcgsInvUi.Views.CoinListView"
x:DataType="viewModels:CoinListViewModel">
<DockPanel>
<DockPanel DockPanel.Dock="Top">
<DataGrid x:Name="CollectionView"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
DockPanel.Dock="Top"
ItemsSource="{Binding CoinCollection}"
SelectedItem="{Binding SelectedCoin, Mode=TwoWay}"
AutoGenerateColumns="False"
CanUserResizeColumns="True" >
<DataGrid.Columns>
<DataGridTextColumn Header="Series" Width="*"
Binding="{Binding Series}"
IsReadOnly="True"/>
<DataGridTextColumn Header="Year"
Binding="{Binding Year}"
IsReadOnly="True"/>
<DataGridTextColumn Header="Mint" Width="*"
Binding="{Binding MintMark}"
IsReadOnly="True"/>
<DataGridTextColumn Header="Denomination" Width="*"
Binding="{Binding Denomination}"
IsReadOnly="True"/>
<DataGridTextColumn Header="Variety" Width="*"
Binding="{Binding MajorVariety}"
IsReadOnly="True"/>
<DataGridTextColumn Header="Grade" Width="*"
Binding="{Binding Grade}"
IsReadOnly="True"/>
<DataGridTextColumn Header="Designation" Width="*"
Binding="{Binding Designation}"
IsReadOnly="True"/>
<DataGridTextColumn Header="Est. Price" Width="*"
Binding="{Binding PriceGuideValue}"
IsReadOnly="False"/>
<DataGridTextColumn Header="PCGS #" Width="*"
Binding="{Binding PcgsNumber}"
IsReadOnly="True"/>
<DataGridTextColumn Header="Quantity" Width="*"
Binding="{Binding Quantity}"
IsReadOnly="False"/>
<DataGridTextColumn Header="Total Price" Width="*"
Binding="{Binding TotalPrice}"
IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
</DockPanel>
<DockPanel DockPanel.Dock="Bottom">
<Grid HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="5" ColumnDefinitions="Auto, Auto, Auto, Auto" DockPanel.Dock="Left">
<Button Grid.Column="0" Margin="5" Width="100" HorizontalContentAlignment="Center" Content="New..." />
<Button Grid.Column="1" Margin="5" Width="100" HorizontalContentAlignment="Center" Content="Edit..." />
<Button Grid.Column="2" Margin="5" Width="100" HorizontalContentAlignment="Center" Content="Delete" />
<Button Grid.Column="3" Margin="5" Width="100" HorizontalContentAlignment="Center" Content="Find..."
Command="{Binding $parent[Window].((viewModels:MainWindowViewModel)DataContext).AddItem}"/>
</Grid>
<Grid HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="5" ColumnDefinitions="Auto, Auto" DockPanel.Dock="Right">
<Label Grid.Column="0" Margin="5" VerticalAlignment="Center" Content="{Binding TotalValue, StringFormat='Total Value: ${0:0.00}'}" />
<Button Grid.Column="1" Margin="5" Width="150" HorizontalContentAlignment="Center" Content="Export to CSV..." />
</Grid>
</DockPanel>
</DockPanel>
</UserControl>
+13
View File
@@ -0,0 +1,13 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace PcgsInvUi.Views;
public partial class CoinListView : UserControl
{
public CoinListView()
{
InitializeComponent();
}
}
+24
View File
@@ -0,0 +1,24 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
d:DesignWidth="325" d:DesignHeight="100"
x:Class="PcgsInvUi.Views.DeleteWindow"
Width="325" Height="100" WindowStartupLocation="CenterOwner"
Title="DeleteWindow">
<Grid ColumnDefinitions="*, *" RowDefinitions="*, *">
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="10"
HorizontalAlignment="Center" VerticalAlignment="Center"
Content="Are you sure you want to delete this item?"/>
<Button Grid.Row="1" Grid.Column="0" Margin="5"
Width="100"
HorizontalAlignment="Stretch" VerticalAlignment="Center"
HorizontalContentAlignment="Center"
Content="Yes" Click="AcceptClicked"/>
<Button Grid.Row="1" Grid.Column="1" Margin="5"
Width="100"
HorizontalAlignment="Stretch" VerticalAlignment="Center"
HorizontalContentAlignment="Center"
Content="No" Click="CancelClicked"/>
</Grid>
</Window>
+27
View File
@@ -0,0 +1,27 @@
using Avalonia.Controls;
using Avalonia.Interactivity;
namespace PcgsInvUi.Views;
public partial class DeleteWindow : Window
{
public bool Accepted { get; set; }
public DeleteWindow()
{
InitializeComponent();
Accepted = false;
}
public void AcceptClicked(object source, RoutedEventArgs args)
{
// TODO Delete the SelectedCoin?
Accepted = true;
Close();
}
public void CancelClicked(object source, RoutedEventArgs args)
{
Close();
}
}
+9
View File
@@ -0,0 +1,9 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModels="clr-namespace:PcgsInvUi.ViewModels"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="PcgsInvUi.Views.MainWindow" x:DataType="viewModels:MainWindowViewModel"
Title="MainWindow"
Content="{Binding Content}" />
+28
View File
@@ -0,0 +1,28 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace PcgsInvUi.Views;
public partial class MainWindow : Window
{
// TODO New window.
// TODO Edit window.
// TODO Delete window.
// TODO Find window.
// TODO Export window.
// TODO Error handling.
// TODO Manual handling of API key.
// TODO Use CoinFacts link.
// TODO Export to CSV.
// TODO Take giant sheet of coins to integrate into the application.
// TODO Update all coins.
// TODO API request tracker (1000 per day)
// TODO API update schedules (per month? manual override? needs to store a date of last update in the coin object)
public MainWindow()
{
InitializeComponent();
}
}
+24
View File
@@ -0,0 +1,24 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewmodels="clr-namespace:PcgsInvUi.ViewModels"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="PcgsInvUi.Views.NewControl" x:DataType="viewmodels:NewViewModel">
<DockPanel>
<Grid DockPanel.Dock="Top" ColumnDefinitions="Auto, *" RowDefinitions="*, *, *">
<Label Grid.Column="0" Grid.Row="0" Margin="5, 5, 20, 5" VerticalAlignment="Center" Content="PCGS #:"/>
<TextBox Grid.Column="1" Grid.Row="0" Margin="5, 5, 10, 5" />
<Label Grid.Column="0" Grid.Row="1" Margin="5, 5, 20, 5" VerticalAlignment="Center" Content="Grade:"/>
<ComboBox Name="GradeChoices" Grid.Column="1" Grid.Row="1" SelectedIndex="0" Margin="5, 5, 10, 5" />
<Label Grid.Column="0" Grid.Row="2" Margin="5, 5, 20, 5" VerticalAlignment="Center" Content="Quantity:"/>
<TextBox Grid.Column="1" Grid.Row="2" Margin="5, 5, 10, 5" />
</Grid>
<Grid DockPanel.Dock="Bottom" ColumnDefinitions="*, *">
<Button Grid.Column="0" Margin="5" HorizontalAlignment="Center" VerticalAlignment="Center"
Width="90" HorizontalContentAlignment="Center" Content="OK" Command="{Binding OkCommand}" />
<Button Grid.Column="1" Margin="5" HorizontalAlignment="Center" VerticalAlignment="Center"
Width="90" HorizontalContentAlignment="Center" Content="Cancel" Command="{Binding CancelCommand}"/>
</Grid>
</DockPanel>
</UserControl>
+64
View File
@@ -0,0 +1,64 @@
using System.Collections.ObjectModel;
using Avalonia.Controls;
using Avalonia.Interactivity;
namespace PcgsInvUi.Views;
public partial class NewControl : UserControl
{
public string SelectedGrade { get; set; } = "";
public void AcceptClick(object source, RoutedEventArgs args)
{
// TODO Send a message to the MainWindow to add a new coin and close the NewControl.
}
public void CancelClick(object source, RoutedEventArgs args)
{
// TODO Send a message to the MainWindow to close the NewControl.
}
public NewControl()
{
InitializeComponent();
GradeChoices.SelectedItem = SelectedGrade;
// Had to type this out - there's no pattern to follow.
GradeChoices.ItemsSource = new ObservableCollection<string>()
{
"PO01",
"FR02",
"AG03",
"G04",
"G06",
"VG08",
"VG10",
"F12",
"F15",
"VF20",
"VF25",
"VF30",
"VF35",
"EF40",
"EF45",
"AU50",
"AU53",
"AU55",
"AU58",
"MS60",
"MS61",
"MS62",
"MS63",
"MS64",
"MS65",
"MS66",
"MS67",
"MS68",
"MS69",
"MS70"
};
}
public NewControl(object? context = null) : this()
{
DataContext = context;
}
}
+25
View File
@@ -0,0 +1,25 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewmodels="clr-namespace:PcgsInvUi.ViewModels"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="PcgsInvUi.Views.NewView" x:DataType="viewmodels:NewViewModel">
<DockPanel>
<Grid DockPanel.Dock="Top" ColumnDefinitions="Auto, *" RowDefinitions="*, *, *">
<Label Grid.Column="0" Grid.Row="0" Margin="5, 5, 20, 5" VerticalAlignment="Center" Content="PCGS #:"/>
<TextBox Grid.Column="1" Grid.Row="0" Margin="5, 5, 10, 5" Text="{Binding PcgsNumber}"/>
<Label Grid.Column="0" Grid.Row="1" Margin="5, 5, 20, 5" VerticalAlignment="Center" Content="Grade:"/>
<ComboBox Name="GradeChoices" Grid.Column="1" Grid.Row="1" SelectedIndex="0" Margin="5, 5, 10, 5"
SelectedItem="{Binding Grade}"/>
<Label Grid.Column="0" Grid.Row="2" Margin="5, 5, 20, 5" VerticalAlignment="Center" Content="Quantity:"/>
<TextBox Grid.Column="1" Grid.Row="2" Margin="5, 5, 10, 5" Text="{Binding Quantity}"/>
</Grid>
<Grid DockPanel.Dock="Bottom" ColumnDefinitions="*, *">
<Button Grid.Column="0" Margin="5" HorizontalAlignment="Center" VerticalAlignment="Center"
Width="90" HorizontalContentAlignment="Center" Content="OK" Command="{Binding OkCommand}"/>
<Button Grid.Column="1" Margin="5" HorizontalAlignment="Center" VerticalAlignment="Center"
Width="90" HorizontalContentAlignment="Center" Content="Cancel" Command="{Binding CancelCommand}" />
</Grid>
</DockPanel>
</UserControl>
+13
View File
@@ -0,0 +1,13 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace PcgsInvUi.Views;
public partial class NewView : UserControl
{
public NewView()
{
InitializeComponent();
}
}