public ActionResult Create(string entity, string sysUsersId)
        {
            var item    = (ProjectTask)JsonConvert.DeserializeObject(entity, typeof(ProjectTask));
            var usersId = (Guid[])JsonConvert.DeserializeObject(sysUsersId, typeof(Guid[]));

            foreach (var userId in usersId)
            {
                if (_iUserInfo.UserId.Equals(userId))
                {
                    continue;
                }
                var projectTask = new ProjectTask
                {
                    SysUserId            = userId,
                    ProjectTaskName      = item.ProjectTaskName,
                    ProjectInfoId        = item.ProjectInfoId,
                    ProjectTaskObjective = item.ProjectTaskObjective,
                    FileUrl   = item.FileUrl,
                    BeginTime = item.BeginTime,
                    EndTime   = item.EndTime
                };
                //var projectTask = item;
                //projectTask.SysUserId = userId;
                _iProjectTaskService.Save(null, projectTask);
            }
            _unitOfWork.Commit();
            return(Content("True"));
        }
        public ActionResult Edit(Guid?id, ProjectTask item, Guid[] sysUserId)
        {
            if (sysUserId == null)
            {
                ModelState.AddModelError("SysUserId", "请选择用户");
            }

            if (ModelState.IsValid)
            {
                if (id.HasValue)
                {
                    if (item.SysUserId != null)
                    {
                        _iMessenger.SendMessage(item.SysUserId.Value, "任务更新:<a href='" + Url.Action("Details", new { item.Id }) + "'  data-ajax=\"true\" data-ajax-mode=\"replace\" data-ajax-update=\"#Main\" >" + item.ProjectTaskName + "</a>");
                    }

                    //编辑任务 针对单人
                    _iProjectTaskService.Save(id, item);
                }
                else
                {
                    //添加任务 多人
                    if (sysUserId != null)
                    {
                        foreach (var userid in sysUserId)
                        {
                            var projectTask = new ProjectTask
                            {
                                SysUserId            = userid,
                                ProjectTaskName      = item.ProjectTaskName,
                                ProjectInfoId        = item.ProjectInfoId,
                                ProjectTaskObjective = item.ProjectTaskObjective,
                                FileUrl   = item.FileUrl,
                                BeginTime = item.BeginTime,
                                EndTime   = item.EndTime
                            };

                            _iProjectTaskService.Save(null, projectTask);

                            _iMessenger.SendMessage(userid, "新任务:<a href='" + Url.Action("Details", new { projectTask.Id }) + "'  data-ajax=\"true\" data-ajax-mode=\"replace\" data-ajax-update=\"#Main\" >" + item.ProjectTaskName + "</a>");
                        }
                    }
                }

                _unitOfWork.Commit();



                if (id.HasValue)
                {
                    TempData[Alerts.SUCCESS] = "编辑任务成功!";
                }

                else
                {
                    TempData[Alerts.SUCCESS] = "发布任务成功!";
                }
            }

            Edit(id);

            return(View(item));
        }
示例#3
0
        public async Task <SaveProjectTaskResponse> Handle(SaveProjectTaskRequest request, CancellationToken cancellationToken)
        {
            var validationFailures  = new List <ValidationFailure>();
            var isProjectIdDefault  = request.ProjectId == default;
            var isStatusIdDefault   = request.StatusId != default;
            var isTaskIdDefault     = request.TaskId == default;
            var isCommentDefault    = string.IsNullOrWhiteSpace(request.Comment);
            var isReferencesDefault = string.IsNullOrWhiteSpace(request.References);

            if (isProjectIdDefault && string.IsNullOrWhiteSpace(request.ProjectName))
            {
                validationFailures.Add(new ValidationFailure(nameof(request.ProjectName),
                                                             "Unable to create project with an empty project name"));
            }

            if (isTaskIdDefault && string.IsNullOrWhiteSpace(request.TaskReference))
            {
                validationFailures.Add(new ValidationFailure(nameof(request.TaskReference),
                                                             "Unable to create task with an empty task reference"));
            }

            if (validationFailures.Count > 0)
            {
                return(Response.Failed <SaveProjectTaskResponse>(validationFailures.ToArray()));
            }

            var project = (isProjectIdDefault)
                ? await _projectService.Save(new Project { Name = request.ProjectName }, false, cancellationToken)
                : await _projectService.GetProject(request.ProjectId, cancellationToken);

            var task = (isTaskIdDefault)
                ? await _taskService.Save(new Domains.Data.Task {
                Reference   = request.TaskReference,
                Description = request.TaskDescription
            }, false, cancellationToken)
                : await _taskService.GetTask(request.TaskId, cancellationToken);

            var projectTask = (isProjectIdDefault || isTaskIdDefault)
                ? await _projectTaskService.Save(new ProjectTask { Project = project, Task = task }, false,
                                                 cancellationToken)
                : await _projectTaskService.GetProjectTask(project.Id, task.Id, cancellationToken);

            if (!isReferencesDefault &&
                _taskReferenceService.TryGetReferences(request.References, out var taskReferences))
            {
                foreach (var taskReference in taskReferences)
                {
                    await _taskReferenceService.Save(taskReference, false, cancellationToken);
                }
            }

            if (!isStatusIdDefault)
            {
                ProjectTaskStatus currentStatus = await _projectTaskStatusService.GetCurrentStatus(projectTask.Id, cancellationToken);

                if (currentStatus.StatusId != request.StatusId)
                {
                    await _projectTaskStatusService.Save(new ProjectTaskStatus { StatusId = request.StatusId, ProjectTask = projectTask },
                                                         false, cancellationToken);
                }
            }

            if (!isCommentDefault)
            {
                var projectTaskComment =
                    await _projectTaskCommentService.Save(new ProjectTaskComment { Comment = request.Comment }, false, cancellationToken);
            }

            await _projectTaskService.Commit(cancellationToken);

            return(Response.Success <SaveProjectTaskResponse>(projectTask));
        }