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); } }