Example #1
0
 private void UpdateProject()
 {
     try
     {
         this.Analysis.DataProviders.DatabaseLock.EnterWriteLock();
         this.Analysis.DataProviders.DatasetCache.UpdateAll(this.Datasets.Select(d => d.Dataset).ToList());
         this.Analysis.DataProviders.OptionsDao.AddAll(OptionsTransformer.PropertiesToList(this.Analysis.Options));
     }
     finally
     {
         this.Analysis.DataProviders.DatabaseLock.ExitWriteLock();
     }
 }
Example #2
0
        private void PersistProject()
        {
            if (this.Analysis.DataProviders == null)
            {
                return;
            }

            if (string.IsNullOrWhiteSpace(this.projectDirectory))
            {
                this.projectDirectory = Path.GetDirectoryName(this.ProjectPath) + Path.DirectorySeparatorChar;
            }
            // Get the relative paths set up.
            foreach (var dataset in this.Datasets.Select(d => d.Dataset))
            {
                foreach (var file in dataset.InputFiles)
                {
                    file.RelativePath = PathUtils.MakeRelativePath(this.projectDirectory, file.Path);
                }
            }

            // Persist
            try
            {
                this.Analysis.DataProviders.DatabaseLock.EnterWriteLock();
                this.Analysis.DataProviders.DatasetCache.AddAll(this.Datasets.Select(d => d.Dataset).ToList());
                this.Analysis.DataProviders.DatasetCache.DeleteAll(this.deletedDatasets);
                // TODO: remove features and such from the database as well.
                this.deletedDatasets.Clear();
                this.Analysis.DataProviders.OptionsDao.AddAll(
                    OptionsTransformer.PropertiesToList(this.Analysis.Options));
            }
            finally
            {
                this.Analysis.DataProviders.DatabaseLock.ExitWriteLock();
            }
        }