public void Save(ProjectEntity projectEntity)
        {
            _packageService.Current.AddFileContent(projectEntity.ToXml(), Constant.PACKAGE_PROJECT_FILE_NAME);
            ProjectAvailableEventArgs args = new ProjectAvailableEventArgs(projectService.Current);

            _eventAggregator.GetEvent <ProjectSavedEvent>().Publish(args);
        }
        public void Open(string path)
        {
            ProjectEventArgs preOpenEventArgs = new ProjectEventArgs(path);

            _eventAggregator.GetEvent <ProjectPreOpenEvent>().Publish(preOpenEventArgs);
            _packageService.Open(path);
            string           strProject    = _packageService.Current.GetFileContent(Constant.PACKAGE_PROJECT_FILE_NAME);
            ProjectEntityDev projectEntity = new ProjectEntityDev();

            projectEntity.FromXml(strProject);
            string         strProjectSummary = _packageService.Current.GetFileContent(Constant.PACKAGE_SUMMARY_FILE_NAME);
            ProjectSummary projectSummary    = new ProjectSummary();

            projectSummary.FromXml(strProjectSummary);
            Project project = new Project(projectEntity, projectSummary);

            project.ProjectFile    = path;
            projectService.Current = project;
            ProjectAvailableEventArgs openedEventArgs = new ProjectAvailableEventArgs(project);

            _eventAggregator.GetEvent <ProjectOpenedEvent>().Publish(openedEventArgs);
            projectSummary.FirstRun = false;
            Save(projectSummary);
            return;
        }
        public void CloseProject()
        {
            ProjectAvailableEventArgs preCloseEventArgs = new ProjectAvailableEventArgs(_current);

            _eventAggregator.GetEvent <ProjectPreCloseEvent>().Publish(preCloseEventArgs);
            _current = null;
            ProjectEventArgs closedEventArgs = new ProjectEventArgs(_packageService.Current.PackageFile);

            _eventAggregator.GetEvent <ProjectClosedEvent>().Publish(closedEventArgs);
        }