Пример #1
0
        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);
        }
Пример #2
0
        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);
        }