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)); }
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)); }