public async Task <IActionResult> DeleteProject(string projectId) { bool result = true; // Get & delete all tasks var tasksIds = _taskrepository.GetByPredicate(x => x.ProjectId == long.Parse(projectId)).Select(x => x.Id).ToList(); // delete each task foreach (var taskId in tasksIds) { var usersHasTasks = _usersHasTaskRepository.GetByPredicate(x => x.TaskId == taskId).ToList(); foreach (var userHasTask in usersHasTasks) { result = result && await _usersHasTaskRepository.Delete(userHasTask.Id); } result = result && await _taskrepository.Delete(taskId); } // Get & delete all Collabotrators var collaborators = await _projectsHasUserRepository.GetProjectCollaborators(long.Parse(projectId)); foreach (var collaborator in collaborators) { result = result && await _projectsHasUserRepository.removeUserFromProject(long.Parse(projectId), collaborator.Id); } // Delete the project result = result && await _projectRepository.Delete(long.Parse(projectId)); return(Ok(result)); }
public async Task <IActionResult> RemoveTaskFromProject(string taskId) { var usersHasTasks = _usersHasTaskRepository.GetByPredicate(x => x.TaskId == long.Parse(taskId)).ToList(); bool result = true; foreach (var userHasTask in usersHasTasks) { result = result && await _usersHasTaskRepository.Delete(userHasTask.Id); } result = result && await _taskrepository.Delete(long.Parse(taskId)); return(Ok(result)); }