예제 #1
0
        /// <summary>
        /// Updates project's custom order properties info.
        /// </summary>
        /// <param name="projectConfig">Project configuration.</param>
        /// <param name="propertiesInfo">Order custom properties info.</param>
        /// <exception cref="DataException">Failed to update database.</exception>
        public static void UpdateProjectCustomOrderPropertiesInfo(ProjectConfiguration projectConfig,
                                                                  OrderCustomPropertiesInfo propertiesInfo)
        {
            Debug.Assert(projectConfig != null);
            Debug.Assert(propertiesInfo != null);

            DataObjectContext dataContext = null;

            try
            {
                // Open database.
                dataContext = DatabaseOpener.OpenDatabase(projectConfig.DatabasePath);

                // Update custom order properties info in database.
                dataContext.UpdateCustomOrderPropertiesInfo(propertiesInfo);
            }
            catch (Exception ex)
            {
                // Failed to update database.
                throw new DataException(Properties.Messages.Error_DatabaseUpdate, ex, DataError.DatabaseUpdateError);
            }
            finally
            {
                if (dataContext != null)
                {
                    dataContext.Dispose();
                }
            }
        }
예제 #2
0
        public void UseMockDatabaseReturnsMockDatabaseOnOpen()
        {
            var database = new Database(null);

            DatabaseOpener.UseMockDatabase(database);

            Assert.AreEqual(database, Database.Open());
        }
예제 #3
0
        public void UseMockDatabaseWithFuncReturnsMockDatabaseOnOpenNamedConnection()
        {
            var database = new Database(null);

            DatabaseOpener.UseMockDatabase(() => database);

            Assert.AreEqual(database, Database.OpenNamedConnection("Steve"));
        }
예제 #4
0
        public void UseMockDatabaseWithFuncReturnsMockDatabaseOnOpenFile()
        {
            var database = new Database(null);

            DatabaseOpener.UseMockDatabase(() => database);

            Assert.AreEqual(database, Database.OpenFile("any.sdb"));
        }
예제 #5
0
        public void UseMockDatabaseReturnsMockDatabaseOnOpenConnection()
        {
            var database = new Database(null);

            DatabaseOpener.UseMockDatabase(database);

            Assert.AreEqual(database, Database.OpenConnection("data source=."));
        }
예제 #6
0
        private void _CreateProject(string projectConfigPath, CapacitiesInfo capacitiesInfo,
                                    OrderCustomPropertiesInfo orderCustomPropertiesInfo)
        {
            try
            {
                // TODO : add advanced error reporting
                _projectCfg  = ProjectConfiguration.Load(projectConfigPath);
                _dataContext = DatabaseOpener.OpenDatabase(_projectCfg.DatabasePath);
                _dataContext.PostInit(capacitiesInfo, orderCustomPropertiesInfo);
                _CreateCollections();

                // TODO: DataObjectManager workaround
                _dataContext.SaveChangesCompleted += new SaveChangesCompletedEventHandler(_dataContext_SaveChangesCompleted);
                _dataContext.PostSavingChanges    += new SavingChangesEventHandler(_dataContext_PostSavingChanges);
                this.DeletionCheckingService       = new DeletionCheckingService(_dataContext);
                _isOpened = true;
            }
            catch (Exception)
            {
                _Clean();
                throw;
            }
        }
예제 #7
0
        /// <summary>
        /// Opens project. Project must be closed.
        /// </summary>
        /// <param name="projectConfigPath">Path to project configuration file.</param>
        private void _OpenProject(string projectConfigPath)
        {
            try
            {
                // TODO : add advanced error reporting
                _projectCfg  = ProjectConfiguration.Load(projectConfigPath);
                _dataContext = DatabaseOpener.OpenDatabase(_projectCfg.DatabasePath);
                _CreateCollections();

                // If we are upgrading project, then we need to update breaks configuration.
                _UpdateBreaksConfig();

                // TODO: DataObjectManager workaround
                _dataContext.SaveChangesCompleted += new SaveChangesCompletedEventHandler(_dataContext_SaveChangesCompleted);
                _dataContext.PostSavingChanges    += new SavingChangesEventHandler(_dataContext_PostSavingChanges);
                this.DeletionCheckingService       = new DeletionCheckingService(_dataContext);
                _isOpened = true;
            }
            catch
            {
                _Clean();
                throw;
            }
        }
예제 #8
0
 public static void UseMockAdapter(Func <Adapter> mockAdapterCreator)
 {
     DatabaseOpener.UseMockAdapter(mockAdapterCreator());
 }
예제 #9
0
 public static void UseMockAdapter(Adapter mockAdapter)
 {
     DatabaseOpener.UseMockAdapter(mockAdapter);
 }
예제 #10
0
 public static void UseMockDatabase(Func <Database> mockDatabaseCreator)
 {
     DatabaseOpener.UseMockDatabase(mockDatabaseCreator);
 }
예제 #11
0
 public static void UseMockDatabase(Database mockDatabase)
 {
     DatabaseOpener.UseMockDatabase(mockDatabase);
 }