public override CNCLibContext CreateDbContext() { var optionsBuilder = new DbContextOptionsBuilder <CNCLibContext>(); SqliteDatabaseTools.OptionBuilder(optionsBuilder); return(new CNCLibContext(optionsBuilder.Options)); }
public Startup(IConfiguration configuration) { Configuration = configuration; string connectString = SqliteDatabaseTools.SetEnvironment(Microsoft.Azure.Web.DataProtection.Util.IsAzureEnvironment()); GlobalDiagnosticsContext.Set("connectionString", connectString); GlobalDiagnosticsContext.Set("version", Assembly.GetExecutingAssembly().GetName().Version?.ToString()); GlobalDiagnosticsContext.Set("application", "CNCLib.WebAPI.Server"); GlobalDiagnosticsContext.Set("username", Environment.UserName); }
public void ConfigureServices(IServiceCollection services) { services.AddControllers(); // services.AddDbContext<CNCLibContext>(options => SqlServerDatabaseTools.OptionBuilder(options)); services.AddDbContext <CNCLibContext>(options => SqliteDatabaseTools.OptionBuilder(options)); }
private void AppStartup(object sender, StartupEventArgs e) { var localizationCollector = new LocalizationCollector(); var moduleInit = new InitializationManager(); moduleInit.Add(new Framework.Tools.ModuleInitializer()); moduleInit.Add(new Framework.Arduino.SerialCommunication.ModuleInitializer()); moduleInit.Add(new Framework.Logic.ModuleInitializer() { MapperConfiguration = new MapperConfiguration( cfg => { cfg.AddProfile <LogicAutoMapperProfile>(); cfg.AddProfile <WpfAutoMapperProfile>(); cfg.AddProfile <GCodeGUIAutoMapperProfile>(); }) }); moduleInit.Add(new CNCLib.Logic.ModuleInitializer()); moduleInit.Add(new CNCLib.Logic.Client.ModuleInitializer()); moduleInit.Add(new CNCLib.Repository.ModuleInitializer() { OptionsAction = SqliteDatabaseTools.OptionBuilder }); moduleInit.Add(new CNCLib.Service.Logic.ModuleInitializer()); moduleInit.Add(new CNCLib.WpfClient.ModuleInitializer()); string connectString = SqliteDatabaseTools.SetEnvironment(false); GlobalDiagnosticsContext.Set("logDir", $"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}/CNCLib/logs"); GlobalDiagnosticsContext.Set("connectionString", connectString); LogManager.ThrowExceptions = true; var logger = LogManager.GetLogger("foo"); _logger.Info(@"Starting ..."); LogManager.ThrowExceptions = false; FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); var userContext = new CNCLibUserContext(CNCLibConst.AdminUser); AppService.ServiceCollection = new ServiceCollection(); AppService.ServiceCollection .AddTransient <ILoggerFactory, LoggerFactory>() .AddTransient(typeof(ILogger <>), typeof(Logger <>)) .AddSingleton((ICNCLibUserContext)userContext); moduleInit.Initialize(AppService.ServiceCollection, localizationCollector); AppService.BuildServiceProvider(); // Open Database here try { CNCLibContext.InitializeDatabase(AppService.ServiceProvider); } catch (Exception ex) { _logger.Error(ex); MessageBox.Show($"Cannot create/connect database in {connectString} \n\r" + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); Current.Shutdown(); } var task = Task.Run(async() => await userContext.InitUserContext()); while (!task.IsCompleted) { Task.Yield(); } }