public virtual void RemoveFromTeam(Project project, Participant participant, bool sendNotification)
        {
            if (project == null)
            {
                throw new ArgumentNullException("project");
            }
            if (participant == null)
            {
                throw new ArgumentNullException("participant");
            }

            ProjectSecurity.DemandEditTeam(project);
            projectDao.RemoveFromTeam(project.ID, participant.ID);
            TimeLinePublisher.Team(project, participant.UserInfo, EngineResource.ActionText_DeletedFromTeam);

            if (!_factory.DisableNotifications && sendNotification)
            {
                NotifyClient.Instance.SendRemovingFromProjectTeam(participant.ID, project);
            }
        }
        public virtual void AddToTeam(Project project, Participant participant, bool sendNotification)
        {
            if (project == null)
            {
                throw new ArgumentNullException("project");
            }
            if (participant == null)
            {
                throw new ArgumentNullException("participant");
            }

            ProjectSecurity.DemandEditTeam(project);
            projectDao.AddToTeam(project.ID, participant.ID);
            TimeLinePublisher.Team(project, participant.UserInfo, EngineResource.ActionText_AddToTeam);

            if (!_factory.DisableNotifications && sendNotification && !project.Responsible.Equals(participant.ID))
            {
                NotifyClient.Instance.SendInvaiteToProjectTeam(participant.ID, project);
            }
        }