Example #1
0
        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));
        }
Example #2
0
        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));
        }