12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- 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 partial class App: Application {
- [STAThread]
- static public void Main(string[] args) {
- SQLitePCL.Batteries.Init();
- using IHost host = CreateHostBuilder(args).Build();
- host.Start();
- App app = new App();
- app.InitializeComponent();
- app.MainWindow = host.Services.GetRequiredService<MainWindow>();
- app.MainWindow.Visibility = Visibility.Visible;
- app.Run();
- #if DEBUG
- // DbTest(host);
- #endif
- }
- protected override void OnStartup(StartupEventArgs e) {
- base.OnStartup(e);
- // SplashScreen splash = new SplashScreen(@"\Assets\Image\琪露诺3.jpg");
- // splash.Show(false, true);
- // splash.Close(new TimeSpan(0, 0, 5));
- }
- 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>()
- };
- });
- });
- }
- 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}.");
- }
- }
- }
- }
|