using Avalonia; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; using Bitvault.Data; using HotAvalonia; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Hosting; using System; using System.Collections.Generic; using Toolkit.Avalonia; using Toolkit.Foundation; namespace Bitvault.Avalonia; public partial class App : Application { public override void Initialize() { this.EnableHotReload(); AvaloniaXamlLoader.Load(this); } public override async void OnFrameworkInitializationCompleted() { IHost? host = DefaultHostBuilder.Create() .AddConfiguration("Locker:*") .AddConfiguration("Item:*") .AddConfiguration(args => args.Name = "Bank Account", "Item:Bank Account") .AddConfiguration(args => args.Name = "Credit Card", "Item:Credit Card") .AddConfiguration(args => args.Name = "Document", "Item:Document") .AddConfiguration(args => args.Name = "Driving Licence", "Item:Driving Licence") .AddConfiguration(args => args.Name = "Identity", "Item:Identity") .AddConfiguration(args => args.Name = "Login", "Item:Login") .AddConfiguration(args => args.Name = "Note", "Item:Note") .AddConfiguration(args => args.Name = "Password", "Item:Password") .ConfigureServices((context, services) => { services.AddAvalonia(); services.AddHandler(); if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime) { services.AddTemplate("MainWindow"); } services.AddScoped>>(provider => new ProxyService>(provider.GetRequiredService>())); services.AddHandler(); services.AddTransient(provider => Component.Create(provider, args => { args.AddServices(services => { services.AddTransient>(provider => Comparer.Create((x, z) => StringComparer.CurrentCultureIgnoreCase.Compare(x.Name, z.Name))); services.AddCache(); services.AddTransient(_ => provider.GetRequiredService>>()); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.TryAddSingleton, ValueStore>(); services.TryAddSingleton, ValueStore>(); services.AddDbContextFactory((provider, args) => { if (provider.GetRequiredService>() is IValueStore connection) { args.UseSqlite($"{connection.Value}"); } }); services.AddHandler(); services.AddHandler(); services.AddHandler(); services.AddHandler(); services.AddHandler(); services.AddTemplate(); services.AddTemplate(); services.AddTemplate(); services.AddTemplate(); services.AddTemplate(); services.AddTemplate("OpenContainer"); services.AddScoped(); services.AddTemplate("Container"); services.AddTemplate("ContentItemCollection"); services.AddHandler(); services.AddTemplate(); services.AddTemplate("ContainerHeader"); services.AddTemplate(); services.AddTemplate("ContainerItemCategoryCollection"); services.AddTemplate(); services.AddHandler(); services.AddTemplate(); services.AddTemplate("Item"); services.AddHandler(); services.AddTemplate("ItemCommandHeader"); services.AddTemplate(); services.AddTemplate(); services.AddTemplate(); services.AddTemplate(); services.AddTemplate(); services.AddTemplate(); services.AddTemplate(); services.AddTemplate(); services.AddTemplate(); services.AddTemplate(); services.AddScoped, ValueStore>(); services.AddHandler(); services.AddHandler(); services.AddHandler(); services.AddHandler(); services.AddHandler(); services.AddHandler(ServiceLifetime.Singleton); services.AddHandler(ServiceLifetime.Singleton); }); })!); services.AddTransient(); services.AddHandler(); services.AddSingleton(); services.AddInitializer(); services.AddTemplate("Main"); services.AddHandler(); services.AddTransient(); services.AddTemplate(); services.AddTemplate("Manage"); services.AddTemplate(); services.AddTemplate("CreateContainer"); }) .Build(); await host.RunAsync(); } }