internal List <TaskViewModel> Search(string term, int userId, int projectId) { var tasksList = _context.Tasks.Where(t => (t.Project.Users.Any(u => u.UserId == userId) || t.Project.Owner.UserId == userId) && t.Project.ProjectId == projectId); if (!string.IsNullOrEmpty(term)) { tasksList = tasksList.Where(t => t.Name.StartsWith(term)); } return(tasksList.ToList().Select(t => TaskViewModel.From(t)).ToList()); }
internal TaskViewModel Create(TaskViewModel taskViewModel) { var taskModel = new Models.Task { Name = taskViewModel.Name, Project = _context.Projects.Single(p => p.ProjectId == taskViewModel.ProjectId) }; _context.Tasks.Add(taskModel); _context.SaveChanges(); return(TaskViewModel.From(taskModel)); }
internal TaskViewModel Update(TaskViewModel task, int userId) { var taskToUpdate = _context.Tasks.SingleAsync(t => t.TaskId == task.Id).Result; if (!taskToUpdate.Project.Users.Any(u => u.UserId == userId) && taskToUpdate.Project.Owner.UserId != userId) { throw new UnauthorizedAccessException("You are not allowed to edit this task!"); } taskToUpdate.Name = task.Name; _context.SaveChanges(); return(TaskViewModel.From(taskToUpdate)); }
internal TaskViewModel Get(int taskId) { var taskModel = _context.Tasks.Single(u => u.TaskId == taskId); return(TaskViewModel.From(taskModel)); }
internal List <TaskViewModel> List(int userId) { var tasksList = _context.Tasks.Where(t => t.Project.Users.Any(u => u.UserId == userId) || t.Project.Owner.UserId == userId).ToList(); return(tasksList.Select(t => TaskViewModel.From(t)).ToList()); }