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();
        }
Beispiel #2
0
        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();
            }
        }
Beispiel #3
0
        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();
            }
        }