Пример #1
0
        public bool ModifyTask(int taskId, int projectID, int teamID, string title, string content, string assignedEmail, string typeName, int time, int state, string currentUserMail)
        {
            assignedEmail = string.IsNullOrEmpty(assignedEmail) ? assignedEmail : assignedEmail.ToLower();
            var currentUserRepoModel = this._userRepository.GetUser(currentUserMail);

            if (currentUserRepoModel == null)
            {
                Enforce.Throw(new LogicErrorException("当前用户已被删除"));
            }
            string assignedUserName = null;

            if (assignedEmail != null)
            {
                var assignedUserRepoModel = this._userRepository.GetUser(assignedEmail);
                if (assignedUserRepoModel == null)
                {
                    Enforce.Throw(new LogicErrorException("指派的用户已被删除"));
                }
                assignedUserName = assignedUserRepoModel.info.userName;
            }

            T_TASK task = _taskBll.GetEntity(new DapperExQuery <T_TASK>()
                                             .AndWhere(s => s.ID, OperationMethod.Equal, taskId));

            if (task == null)
            {
                Enforce.Throw(new LogicErrorException("当前任务不存在"));
            }
            //TeamRepoModel teamRepoModel = _teamRepository.GetTeamDetail(teamID);
            //if (!teamRepoModel.members.Any(A => A.memberMail == currentUserMail))
            //{
            //    Enforce.Throw(new LogicErrorException("该用户不属于当前团队"));
            //}
            if (projectID > 0)
            {
                ProjectRepoModel projectRepoModel = _projectRepository.GetProjectDetail(projectID);
                if (!projectRepoModel.members.Any(A => A.memberMail == assignedEmail))
                {
                    Enforce.Throw(new LogicErrorException("该用户不属于当前项目"));
                }
            }
            TaskInfoModel taskInfoModel = Mapper.Map <T_TASK, TaskInfoModel>(task);

            taskInfoModel.title         = title != null ? title : taskInfoModel.title;
            taskInfoModel.content       = content != null ? content : taskInfoModel.content;
            taskInfoModel.assignedName  = assignedEmail != null ? assignedUserName : taskInfoModel.assignedName;
            taskInfoModel.assignedEmail = assignedEmail != null ? assignedEmail : taskInfoModel.assignedEmail;
            taskInfoModel.typeName      = typeName != null ? typeName : taskInfoModel.typeName;
            taskInfoModel.time          = time != 0 ? time : taskInfoModel.time;
            taskInfoModel.state         = state;
            return(_taskBll.ModifyTask(AutoMapper.Mapper.Map <TaskInfoModel, T_TASK>(taskInfoModel), currentUserRepoModel.info.userName, currentUserMail, DateTime.Now));
        }
Пример #2
0
        public ProjectRepoModel GetProjectDetail(int projectID)
        {
            var project = this.getProjectInfo(projectID);

            if (project == null)
            {
                Enforce.Throw(new LogicErrorException("当前项目已被删除"));
            }
            ProjectRepoModel projectRepoModel = new ProjectRepoModel();

            projectRepoModel.info    = project;
            projectRepoModel.members = this.getProjectMemberList(projectID);
            return(projectRepoModel);
        }
Пример #3
0
        public int CreateTask(int backLogID, int teamID, string title, string content, string assignedEmail, string typeName, int time, int state, string currentUserMail)
        {
            assignedEmail = string.IsNullOrEmpty(assignedEmail) ? assignedEmail : assignedEmail.ToLower();
            var currentUserRepoModel = this._userRepository.GetUser(currentUserMail);

            if (currentUserRepoModel == null)
            {
                Enforce.Throw(new LogicErrorException("当前用户已被删除"));
            }

            var assignedUserRepoModel = this._userRepository.GetUser(assignedEmail);

            if (assignedUserRepoModel == null)
            {
                Enforce.Throw(new LogicErrorException("指派的用户已被删除"));
            }

            var backLogInfo = this._backlogRepository.GetBacklogInfoModel(teamID, backLogID);
            //TeamRepoModel teamRepoModel = _teamRepository.GetTeamDetail(teamID);
            //if (!teamRepoModel.members.Any(A => A.memberMail == currentUserMail))
            //{
            //    Enforce.Throw(new LogicErrorException("该用户不属于当前团队"));
            //}

            ProjectRepoModel projectRepoModel = _projectRepository.GetProjectDetail(backLogInfo.projectID);

            if (!projectRepoModel.members.Any(A => A.memberMail.ToLower() == assignedEmail))
            {
                Enforce.Throw(new LogicErrorException("该用户不属于当前项目"));
            }

            TaskInfoModel taskInfoModel = new TaskInfoModel();

            taskInfoModel.backLogID       = backLogID;
            taskInfoModel.projectID       = backLogInfo.projectID;
            taskInfoModel.projectName     = backLogInfo.projectName;
            taskInfoModel.title           = title;
            taskInfoModel.content         = content;
            taskInfoModel.assignedName    = assignedUserRepoModel.info.userName;
            taskInfoModel.assignedEmail   = assignedEmail;
            taskInfoModel.typeName        = typeName;
            taskInfoModel.time            = time;
            taskInfoModel.state           = state;
            taskInfoModel.currentUserMail = currentUserMail;
            taskInfoModel.createTime      = DateTime.Now;
            return(this._taskBll.CreateTask(AutoMapper.Mapper.Map <TaskInfoModel, T_TASK>(taskInfoModel), currentUserRepoModel.info.userName));
        }