diff --git a/Bitvault.Avalonia/AddVaultContentHeaderView.axaml b/Bitvault.Avalonia/AddVaultContentCommandHeaderView.axaml
similarity index 92%
rename from Bitvault.Avalonia/AddVaultContentHeaderView.axaml
rename to Bitvault.Avalonia/AddVaultContentCommandHeaderView.axaml
index f0f31b4..fbc9337 100644
--- a/Bitvault.Avalonia/AddVaultContentHeaderView.axaml
+++ b/Bitvault.Avalonia/AddVaultContentCommandHeaderView.axaml
@@ -1,9 +1,9 @@
+ x:DataType="vm:AddVaultContentCommandHeaderViewModel">
40
diff --git a/Bitvault.Avalonia/AddVaultContentCommandHeaderView.axaml.cs b/Bitvault.Avalonia/AddVaultContentCommandHeaderView.axaml.cs
new file mode 100644
index 0000000..b4b7ff7
--- /dev/null
+++ b/Bitvault.Avalonia/AddVaultContentCommandHeaderView.axaml.cs
@@ -0,0 +1,8 @@
+using Avalonia.Controls;
+
+namespace Bitvault.Avalonia;
+
+public partial class AddVaultContentCommandHeaderView : UserControl
+{
+ public AddVaultContentCommandHeaderView() => InitializeComponent();
+}
diff --git a/Bitvault.Avalonia/AddVaultContentHeaderView.axaml.cs b/Bitvault.Avalonia/AddVaultContentHeaderView.axaml.cs
deleted file mode 100644
index 17c4603..0000000
--- a/Bitvault.Avalonia/AddVaultContentHeaderView.axaml.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using Avalonia.Controls;
-
-namespace Bitvault.Avalonia
-{
- public partial class AddVaultContentHeaderView : UserControl
- {
- public AddVaultContentHeaderView()
- {
- InitializeComponent();
- }
- }
-}
diff --git a/Bitvault.Avalonia/AddVaultContentView.axaml b/Bitvault.Avalonia/AddVaultContentView.axaml
index a444076..f368040 100644
--- a/Bitvault.Avalonia/AddVaultContentView.axaml
+++ b/Bitvault.Avalonia/AddVaultContentView.axaml
@@ -6,44 +6,10 @@
x:DataType="vm:AddVaultContentViewModel">
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/Bitvault.Avalonia/App.axaml.cs b/Bitvault.Avalonia/App.axaml.cs
index 7702ddb..60d7eaa 100644
--- a/Bitvault.Avalonia/App.axaml.cs
+++ b/Bitvault.Avalonia/App.axaml.cs
@@ -8,6 +8,7 @@ using Toolkit.Avalonia;
using Toolkit.Foundation;
using Microsoft.Extensions.DependencyInjection.Extensions;
using HotAvalonia;
+using Bitvault.Data;
namespace Bitvault.Avalonia;
@@ -80,10 +81,12 @@ public partial class App : Application
services.AddTemplate("VaultContent");
services.AddTemplate("AddVaultContent");
- services.AddTemplate("AddVaultContentHeader");
+ services.AddTemplate("AddVaultContentCommandHeader");
services.AddTemplate();
services.AddTemplate();
+
+ services.AddTemplate();
});
})!);
diff --git a/Bitvault.Avalonia/Bitvault.Avalonia.csproj b/Bitvault.Avalonia/Bitvault.Avalonia.csproj
index cd43c70..22d7ffd 100644
--- a/Bitvault.Avalonia/Bitvault.Avalonia.csproj
+++ b/Bitvault.Avalonia/Bitvault.Avalonia.csproj
@@ -43,6 +43,12 @@
AddVaultContentActionView.axaml
+
+ AddVaultContentCommandHeaderView.axaml
+
+
+ VaultContentHeaderView.axaml
+
OpenView.axaml
diff --git a/Bitvault.Avalonia/VaultContentHeaderView.axaml b/Bitvault.Avalonia/VaultContentHeaderView.axaml
new file mode 100644
index 0000000..dce941e
--- /dev/null
+++ b/Bitvault.Avalonia/VaultContentHeaderView.axaml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/Bitvault.Avalonia/VaultContentHeaderView.axaml.cs b/Bitvault.Avalonia/VaultContentHeaderView.axaml.cs
new file mode 100644
index 0000000..89e9e07
--- /dev/null
+++ b/Bitvault.Avalonia/VaultContentHeaderView.axaml.cs
@@ -0,0 +1,8 @@
+using Avalonia.Controls;
+
+namespace Bitvault.Avalonia;
+
+public partial class VaultContentHeaderView : UserControl
+{
+ public VaultContentHeaderView() => InitializeComponent();
+}
diff --git a/Bitvault.Data/Bitvault.Data.csproj b/Bitvault.Data/Bitvault.Data.csproj
new file mode 100644
index 0000000..a9ea45d
--- /dev/null
+++ b/Bitvault.Data/Bitvault.Data.csproj
@@ -0,0 +1,20 @@
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
\ No newline at end of file
diff --git a/Bitvault/Category.cs b/Bitvault.Data/Category.cs
similarity index 86%
rename from Bitvault/Category.cs
rename to Bitvault.Data/Category.cs
index 4b77f4f..61feec8 100644
--- a/Bitvault/Category.cs
+++ b/Bitvault.Data/Category.cs
@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
-namespace Bitvault;
+namespace Bitvault.Data;
public record Category
{
diff --git a/Bitvault/Content.cs b/Bitvault.Data/Content.cs
similarity index 77%
rename from Bitvault/Content.cs
rename to Bitvault.Data/Content.cs
index de7eddd..9c3f8c7 100644
--- a/Bitvault/Content.cs
+++ b/Bitvault.Data/Content.cs
@@ -1,6 +1,7 @@
-using System.ComponentModel.DataAnnotations;
+using Bitvault.Data;
+using System.ComponentModel.DataAnnotations;
-namespace Bitvault;
+namespace Bitvault.Data;
public record Content
{
diff --git a/Bitvault/Document.cs b/Bitvault.Data/Document.cs
similarity index 88%
rename from Bitvault/Document.cs
rename to Bitvault.Data/Document.cs
index 82426ad..cdc13de 100644
--- a/Bitvault/Document.cs
+++ b/Bitvault.Data/Document.cs
@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
-namespace Bitvault;
+namespace Bitvault.Data;
public record Document
{
diff --git a/Bitvault/DocumentType.cs b/Bitvault.Data/DocumentType.cs
similarity index 63%
rename from Bitvault/DocumentType.cs
rename to Bitvault.Data/DocumentType.cs
index fab272f..e5c36e8 100644
--- a/Bitvault/DocumentType.cs
+++ b/Bitvault.Data/DocumentType.cs
@@ -1,4 +1,4 @@
-namespace Bitvault;
+namespace Bitvault.Data;
public enum DocumentType
{
diff --git a/Bitvault/Tag.cs b/Bitvault.Data/Tag.cs
similarity index 85%
rename from Bitvault/Tag.cs
rename to Bitvault.Data/Tag.cs
index 20d84f4..0451089 100644
--- a/Bitvault/Tag.cs
+++ b/Bitvault.Data/Tag.cs
@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
-namespace Bitvault;
+namespace Bitvault.Data;
public class Tag
{
diff --git a/Bitvault/VaultDbContext.cs b/Bitvault.Data/VaultDbContext.cs
similarity index 87%
rename from Bitvault/VaultDbContext.cs
rename to Bitvault.Data/VaultDbContext.cs
index a2e9274..24fa8ba 100644
--- a/Bitvault/VaultDbContext.cs
+++ b/Bitvault.Data/VaultDbContext.cs
@@ -1,6 +1,7 @@
-using Microsoft.EntityFrameworkCore;
+using Bitvault.Data;
+using Microsoft.EntityFrameworkCore;
-namespace Bitvault;
+namespace Bitvault.Data;
public class VaultDbContext(DbContextOptions options) :
DbContext(options)
diff --git a/Bitvault.sln b/Bitvault.sln
index f4bb637..ea07612 100644
--- a/Bitvault.sln
+++ b/Bitvault.sln
@@ -17,6 +17,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Toolkit.UI.Avalonia", "Tool
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Toolkit.UI.Controls.Avalonia", "Toolkit\Toolkit.UI.Controls.Avalonia\Toolkit.UI.Controls.Avalonia.csproj", "{716E252B-B758-4134-9D34-50FC42B414C6}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bitvault.Data", "Bitvault.Data\Bitvault.Data.csproj", "{DB60A3F3-1250-4414-A861-567C79CC8CE3}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -51,6 +53,10 @@ Global
{716E252B-B758-4134-9D34-50FC42B414C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{716E252B-B758-4134-9D34-50FC42B414C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{716E252B-B758-4134-9D34-50FC42B414C6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DB60A3F3-1250-4414-A861-567C79CC8CE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DB60A3F3-1250-4414-A861-567C79CC8CE3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DB60A3F3-1250-4414-A861-567C79CC8CE3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DB60A3F3-1250-4414-A861-567C79CC8CE3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Bitvault/AddVaultContentHeaderViewModel.cs b/Bitvault/AddVaultContentCommandHeaderViewModel.cs
similarity index 75%
rename from Bitvault/AddVaultContentHeaderViewModel.cs
rename to Bitvault/AddVaultContentCommandHeaderViewModel.cs
index e7136e3..3f929f5 100644
--- a/Bitvault/AddVaultContentHeaderViewModel.cs
+++ b/Bitvault/AddVaultContentCommandHeaderViewModel.cs
@@ -2,9 +2,9 @@
namespace Bitvault;
-public partial class AddVaultContentHeaderViewModel : ObservableCollectionViewModel
+public partial class AddVaultContentCommandHeaderViewModel : ObservableCollectionViewModel
{
- public AddVaultContentHeaderViewModel(IServiceProvider provider,
+ public AddVaultContentCommandHeaderViewModel(IServiceProvider provider,
IServiceFactory factory,
IMediator mediator,
IPublisher publisher,
diff --git a/Bitvault/AddVaultContentViewModel.cs b/Bitvault/AddVaultContentViewModel.cs
index 82d9eea..93d29bc 100644
--- a/Bitvault/AddVaultContentViewModel.cs
+++ b/Bitvault/AddVaultContentViewModel.cs
@@ -3,14 +3,37 @@ using Toolkit.Foundation;
namespace Bitvault;
-public partial class AddVaultContentViewModel(IServiceProvider provider,
- IServiceFactory factory,
- IMediator mediator,
- IPublisher publisher,
- ISubscriber subscriber,
- IDisposer disposer,
- NamedComponent named) : ObservableCollectionViewModel(provider, factory, mediator, publisher, subscriber, disposer)
+public partial class AddVaultContentViewModel :
+ ObservableCollectionViewModel
{
[ObservableProperty]
- private string named = $"{named}";
+ private string named;
+
+ public AddVaultContentViewModel(IServiceProvider provider,
+ IServiceFactory factory,
+ IMediator mediator,
+ IPublisher publisher,
+ ISubscriber subscriber,
+ IDisposer disposer,
+ IContentTemplate template,
+ NamedComponent named) : base(provider, factory, mediator, publisher, subscriber, disposer)
+ {
+ Template = template;
+ Named = $"{named}";
+
+ Add();
+ }
+
+ public IContentTemplate Template { get; set; }
+
+ public Task Confirm()
+ {
+ VaultContentConfiguration configuration = new();
+ foreach (IVaultContentEntryViewModel item in this)
+ {
+ item.Invoke(configuration);
+ }
+
+ return Task.FromResult(true);
+ }
}
diff --git a/Bitvault/Bitvault.csproj b/Bitvault/Bitvault.csproj
index 5e64ceb..6d31932 100644
--- a/Bitvault/Bitvault.csproj
+++ b/Bitvault/Bitvault.csproj
@@ -7,18 +7,9 @@
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
\ No newline at end of file
diff --git a/Bitvault/IVaultContentEntryViewModel.cs b/Bitvault/IVaultContentEntryViewModel.cs
new file mode 100644
index 0000000..a962f56
--- /dev/null
+++ b/Bitvault/IVaultContentEntryViewModel.cs
@@ -0,0 +1,6 @@
+using Toolkit.Foundation;
+
+namespace Bitvault;
+
+public interface IVaultContentEntryViewModel :
+ IValueInvoker;
diff --git a/Bitvault/IconPickerViewModel.cs b/Bitvault/IconPickerViewModel.cs
deleted file mode 100644
index c2a473d..0000000
--- a/Bitvault/IconPickerViewModel.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using Toolkit.Foundation;
-
-namespace Bitvault;
-
-public partial class IconPickerViewModel : ObservableViewModel
-{
- public IconPickerViewModel(IServiceProvider provider,
- IServiceFactory factory,
- IMediator mediator,
- IPublisher publisher,
- ISubscriber subscriber,
- IDisposer disposer) : base(provider, factory, mediator, publisher, subscriber, disposer)
- {
-
- }
-}
diff --git a/Bitvault/VaultContentConfiguration.cs b/Bitvault/VaultContentConfiguration.cs
new file mode 100644
index 0000000..b824251
--- /dev/null
+++ b/Bitvault/VaultContentConfiguration.cs
@@ -0,0 +1,6 @@
+namespace Bitvault;
+
+public record VaultContentConfiguration
+{
+ public string? Name { get; set; }
+}
diff --git a/Bitvault/VaultContentHeaderViewModel.cs b/Bitvault/VaultContentHeaderViewModel.cs
index aab09c9..e60b303 100644
--- a/Bitvault/VaultContentHeaderViewModel.cs
+++ b/Bitvault/VaultContentHeaderViewModel.cs
@@ -7,4 +7,9 @@ public partial class VaultContentHeaderViewModel(IServiceProvider provider,
IMediator mediator,
IPublisher publisher,
ISubscriber subscriber,
- IDisposer disposer) : ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer);
\ No newline at end of file
+ IDisposer disposer) : ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer),
+ IVaultContentEntryViewModel
+{
+ public void Invoke(VaultContentConfiguration args) =>
+ args.Name = Value;
+}
diff --git a/Bitvault/VaultStorage.cs b/Bitvault/VaultStorage.cs
index 582b92e..8c10f12 100644
--- a/Bitvault/VaultStorage.cs
+++ b/Bitvault/VaultStorage.cs
@@ -1,4 +1,5 @@
-using Microsoft.EntityFrameworkCore;
+using Bitvault.Data;
+using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Toolkit.Foundation;