static UnitOfWorkFactory() { try { var context = new AppDBContext(); bool dbExists = context.Database.Exists(); if (!dbExists || !context.Database.CompatibleWithModel(false)) { var configuration = new CottonDBMS.Data.EF.Migrations.Configuration(); var migrator = new DbMigrator(configuration); migrator.Configuration.TargetDatabase = new DbConnectionInfo(context.Database.Connection.ConnectionString, "System.Data.SqlClient"); var migrations = migrator.GetPendingMigrations(); if (migrations.Any()) { migrator.Update(); } } if (!dbExists) { context.ApplySeeds(); } } catch (Exception exc) { var msg = exc.Message; } CottonDBMS.EF.Tasks.GinSyncWithCloudTask.Init(); }
public static void InitializeAppDomain(string appDataFolder) { if (alreadyRunningProcess()) { Application.Current.Shutdown(-2); } string dir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); dir = dir.TrimEnd('\\') + "\\" + FolderConstants.ROOT_APP_DATA_FOLDER; if (!System.IO.Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } dir = dir + "\\" + appDataFolder + "\\"; if (!System.IO.Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } CottonDBMS.Logging.Logger.SetLogPath(dir); Logging.Logger.Log("INFO", "Data dir: " + dir); AppDomain.CurrentDomain.SetData("DataDirectory", dir.TrimEnd('\\')); using (var context = new AppDBContext()) { bool dbExists = context.Database.Exists(); if (!dbExists || !context.Database.CompatibleWithModel(false)) { Logging.Logger.Log("INFO", "Creating database"); var configuration = new CottonDBMS.Data.EF.Migrations.Configuration(); var migrator = new DbMigrator(configuration); migrator.Configuration.TargetDatabase = new DbConnectionInfo(context.Database.Connection.ConnectionString, "System.Data.SqlClient"); var migrations = migrator.GetPendingMigrations(); if (migrations.Any()) { migrator.Update(); } } if (!dbExists) { context.ApplySeeds(); } context.Dispose(); } }
private void Application_Startup(object sender, StartupEventArgs e) { try { if (alreadyRunningProcess()) { Application.Current.Shutdown(-2); } //Force database to be stored in same folder as program for easy location string dir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); dir = dir.TrimEnd('\\') + "\\" + FolderConstants.ROOT_APP_DATA_FOLDER; if (!System.IO.Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } string truckLogDir = dir + "\\" + FolderConstants.TRUCK_APP_DATA_FOLDER + "\\"; if (!System.IO.Directory.Exists(truckLogDir)) { System.IO.Directory.CreateDirectory(truckLogDir); } string currentDirectory = System.Reflection.Assembly.GetExecutingAssembly().Location.Replace("CottonDBMS.TruckApp.exe", ""); CottonDBMS.Logging.Logger.SetLogPath(truckLogDir); var shortcutFile = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Startup), "CottonDBMSTruckApp.lnk"); try { if (ConfigurationManager.AppSettings["AllowStartupAndShutdown"].ToLower() == "true") { if (!System.IO.File.Exists(shortcutFile)) { createStartupLink(); } } else { if (System.IO.File.Exists(shortcutFile)) { System.IO.File.Delete(shortcutFile); } } } catch (Exception exc) { Logging.Logger.Log(exc); } Logging.Logger.Log("INFO", "Data dir: " + dir); AppDomain.CurrentDomain.SetData("DataDirectory", dir.TrimEnd('\\')); using (var context = new AppDBContext()) { bool dbExists = context.Database.Exists(); if (!dbExists || !context.Database.CompatibleWithModel(false)) { Logging.Logger.Log("INFO", "Creating database"); var configuration = new CottonDBMS.Data.EF.Migrations.Configuration(); var migrator = new DbMigrator(configuration); migrator.Configuration.TargetDatabase = new DbConnectionInfo(context.Database.Connection.ConnectionString, "System.Data.SqlClient"); var migrations = migrator.GetPendingMigrations(); if (migrations.Any()) { migrator.Update(); } } if (!dbExists) { context.ApplySeeds(); } context.Dispose(); } SimpleIoc.Default.Register <AddPickUpListViewModel>(); SimpleIoc.Default.Register <DataSyncSettingsViewModel>(); SimpleIoc.Default.Register <DiagnosticsViewModel>(); SimpleIoc.Default.Register <HomeViewModel>(); SimpleIoc.Default.Register <NavViewModel>(); SimpleIoc.Default.Register <SettingsViewModel>(); SimpleIoc.Default.Register <TruckSettingsViewModel>(); SimpleIoc.Default.Register <PickUpListViewModel>(); SimpleIoc.Default.Register <LoadingWindowViewModel>(); SimpleIoc.Default.Register <LoadingIncorrectModuleViewModel>(); SimpleIoc.Default.Register <UnloadingModuleViewModel>(); SimpleIoc.Default.Register <ChangeListViewModel>(); SimpleIoc.Default.Register <UnloadingAtGinViewModel>(); SimpleIoc.Default.Register <LoadingAtGinViewModel>(); SimpleIoc.Default.Register <UnloadCorrectionViewModel>(); SimpleIoc.Default.Register <TruckSetupViewModel>(); SimpleIoc.Default.Register <IWindowService, WindowService>(); SimpleIoc.Default.Register <IUnitOfWorkFactory, UnitOfWorkFactory>(); } catch (Exception exc) { Logging.Logger.Log(exc); Logging.Logger.CleanUp(); } }