using System;
using System.ComponentModel;
using DelftTools.Shell.Core.Dao;
namespace DelftTools.Shell.Core.Services
{
///
/// All common project manipulations in the Application
///
public interface IProjectService : IDisposable
{
event EventHandler ProjectSaved;
event EventHandler ProjectSaving;
event EventHandler ProjectSaveFailed;
event EventHandler ProjectOpening;
event EventHandler ProjectOpened;
string ProjectDataDirectory { get; }
IProjectRepository ProjectRepository { get; }
IProjectRepositoryFactory ProjectRepositoryFactory { get; set; }
string CreateAndGetExternalDataDirectory(string basePath); // TODO: remove this hack, what is external data directory?!?
///
/// Creates new project.
///
Project CreateNewProjectInTemporaryFolder();
///
/// Saves project under new location.
///
///
///
void SaveProjectAs(Project project, string path);
///
/// Create Project.
///
///
Project Create(string path);
///
/// Opens project. Returns null if project has invalid version.
///
///
Project Open(string path);
///
/// Saves project.
///
///
void Save(Project project);
///
/// Close project (and release files).
///
///
void Close(Project project);
void SaveProjectInTemporaryFolder(Project project);
}
}