public async Task <IActionResult> PatchTaskWithUser(TaskWithUsersVM taskToUser) { var result = await _kanbanTaskService.PatchTaskWithUser(taskToUser); if (result.Response != null) { return(BadRequest(result)); } return(Ok("Task was patched")); }
public async Task <ResultDTO> PatchTaskWithUser(TaskWithUsersVM taskToUsersVM) { var result = new ResultDTO() { Response = null }; try { var task = await _kanbantaskrepo.GetSingleEntity(x => x.Id == taskToUsersVM.Id); if (task != null) { if (taskToUsersVM.Title != null) { task.Title = taskToUsersVM.Title; } if (taskToUsersVM.Description != null) { task.Description = taskToUsersVM.Description; } if (taskToUsersVM.Status != null) { task.Status = taskToUsersVM.Status; } if (taskToUsersVM.Color != null) { task.Color = taskToUsersVM.Color; } if (taskToUsersVM.Blocked != null) { task.Blocked = taskToUsersVM.Blocked; } await _kanbantaskrepo.Patch(task); var userTaskList = await _usertaskrepo.GetAll(); foreach (UserTask userTask in userTaskList) { if (userTask.KanbanTaskId == task.Id) { await _usertaskrepo.Delete(userTask); } } foreach (UserWithoutIdDTO user in taskToUsersVM.UserList) { var findUser = await _userrepo.GetSingleEntity(x => x.Name == user.Name && x.Surname == user.Surname); if (findUser != null) { var usertask = new UserTask() { User = findUser, KanbanTask = task }; await _usertaskrepo.Add(usertask); } else { result.Response = "Task was patched, but one of the users does not exist"; } } } else { result.Response = "Task does not exist"; } } catch (Exception e) { result.Response = e.Message; return(result); } return(result); }