1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- using System.Windows;
- using Microsoft.EntityFrameworkCore;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Hosting;
- using Waaagh.Models;
- using Waaagh.Services.Abstract;
- using Waaagh.ViewModels;
- using Waaagh.Views;
- namespace Waaagh {
- public class Program {
- [STAThread]
- static public void Main(string[] args) {
- SQLitePCL.Batteries.Init();
- IHost host = CreateHostBuilder(args).Build();
- host.Start();
- Application application = host.Services.GetRequiredService<Application>();
- #if DEBUG
- // DbTest(host);
- #endif
- application.Run();
- }
- static private IHostBuilder CreateHostBuilder(string[] args) {
- return Host.CreateDefaultBuilder(args)
- .ConfigureServices(services => {
- services.AddDbContextFactory<AppDatabaseContext>((sp, options) => {
- IConfiguration configuration = sp.GetRequiredService<IConfiguration>();
- string? sqliteConnectionString = configuration.GetConnectionString("Default");
- if (string.IsNullOrWhiteSpace(sqliteConnectionString)) {
- throw new Exception("Configuration Database Connection String Error.");
- }
- options.UseSqlite(sqliteConnectionString);
- });
- })
- .AddDefaultMessageManager()
- .AddDefaultMessageCatcher()
- .AddDefaultScenarioManager()
- .ConfigureServices(services => {
- // MainWindow
- services.AddSingleton<MainViewModel>();
- services.AddSingleton<MainWindow>(sp => {
- return new MainWindow() {
- DataContext = sp.GetRequiredService<MainViewModel>()
- };
- });
- })
- .ConfigureServices(services => {
- // Application
- services.AddSingleton<Application>(sp => {
- Application application = new Application() {
- MainWindow = sp.GetRequiredService<MainWindow>(),
- };
- application.Startup += (s, e) => {
- if (s is Application application) {
- application.MainWindow.Show();
- }
- };
- return application;
- });
- });
- }
- static public void DbTest(IHost host) {
- IDbContextFactory<AppDatabaseContext> factory = host.Services.GetRequiredService<IDbContextFactory<AppDatabaseContext>>();
- AppDatabaseContext context = factory.CreateDbContext();
- {
- Scenario scenario = new Scenario() {
- Id = 1,
- Name = "Test"
- };
- if (context.Scenarios.Contains(scenario) == false) {
- context.Scenarios.Add(scenario);
- }
- else {
- scenario.IsLegacy = true;
- context.Scenarios.Update(scenario);
- }
- context.SaveChanges();
- }
- foreach (Scenario scenario in context.Scenarios) {
- Console.WriteLine($"{scenario.Name}-{scenario.Id}<{scenario.IsLegacy}>: {scenario.Description}.");
- }
- }
- }
- }
|