Ejemplo n.º 1
0
        public void Save(IMoBiContext context)
        {
            var project = context.CurrentProject;

            _sessionManager.CreateFactoryFor(project.FilePath);

            using (var session = _sessionManager.OpenSession())
                using (var transaction = session.BeginTransaction())
                {
                    context.UpdateJournalPathRelativeTo(project.FilePath);
                    _projectPersistor.Save(project, context);
                    _historyManagerPersistor.Save(context.HistoryManager, _sessionManager.CurrentSession);
                    transaction.Commit();
                }

            // after save was successfull, compress file
            _projectFileCompressor.Compress(project.FilePath);
            project.Name              = FileHelper.FileNameFromFileFullPath(project.FilePath);
            project.HasChanged        = false;
            context.ProjectIsReadOnly = false;
            GC.Collect();
        }