public virtual void Delete(int projectId) { var project = GetByID(projectId); if (project == null) { return; } ProjectSecurity.DemandEdit(project); projectDao.Delete(projectId); TimeLinePublisher.Project(project, EngineResource.ActionText_Delete, UserActivityConstants.ActivityActionType, UserActivityConstants.Max); }
public virtual Project SaveOrUpdate(Project project, bool notifyManager, bool isImport) { if (project == null) { throw new ArgumentNullException("project"); } project.LastModifiedBy = SecurityContext.CurrentAccount.ID; project.LastModifiedOn = TenantUtil.DateTimeNow(); if (project.ID == 0) { if (project.CreateBy == default(Guid)) { project.CreateBy = SecurityContext.CurrentAccount.ID; } if (project.CreateOn == default(DateTime)) { project.CreateOn = TenantUtil.DateTimeNow(); } ProjectSecurity.DemandCreateProject(); projectDao.Save(project); TimeLinePublisher.Project(project, isImport ? EngineResource.ActionText_Imported: EngineResource.ActionText_Create, UserActivityConstants.ContentActionType, UserActivityConstants.Max); } else { ProjectSecurity.DemandEdit(project); projectDao.Save(project); if (!project.Private) { ResetTeamSecurity(project); } TimeLinePublisher.Project(project, EngineResource.ActionText_Update, UserActivityConstants.ActivityActionType, UserActivityConstants.Max); } if (notifyManager && !_factory.DisableNotifications && !project.Responsible.Equals(SecurityContext.CurrentAccount.ID)) { NotifyClient.Instance.SendAboutResponsibleByProject(project.Responsible, project); } return(project); }