public static Task GetTaskById(Guid taskId, Guid projectId, Guid userId) { Task item = null; UserTaskAccess access = AllUserTaskAccess.GetForUserAndProjectAndTask(userId, projectId, taskId); //check if user has access to this task, if so, retrieve it if (access != null) { item = AllTasks.GetForId(taskId); } return(item); }
public static List <ValidationMessage> RemoveUserAccess( ValidatableParameter <string> projectId, ValidatableParameter <string> taskId, ValidatableParameter <Guid> userId ) { List <ValidationMessage> errors = new List <ValidationMessage>(); Guid projId = Guid.Empty; Guid tskId = Guid.Empty; try { projId = new Guid(projectId.Value); } catch (FormatException) { errors.Add(new ValidationMessage { MessageText = "Project Id must be in the format dddddddd-dddd-dddd-dddd-dddddddddddd", Source = projectId.Source }); } try { tskId = new Guid(taskId.Value); } catch (FormatException) { errors.Add(new ValidationMessage { MessageText = "Task Id must be in the format dddddddd-dddd-dddd-dddd-dddddddddddd", Source = taskId.Source }); } if (userId.Value == Guid.Empty) { errors.Add(new ValidationMessage { MessageText = "User must be supplied", Source = userId.Source }); } else { //check for existing relationship UserTaskAccess existItem = AllUserTaskAccess.GetForUserAndProjectAndTask(userId.Value, projId, tskId); if (existItem == null) { errors.Add(new ValidationMessage { MessageText = string.Format("User does not have access to Task with Id {0}", existItem.TaskId.ToString()), Source = userId.Source }); } } //perform add if no errors if (errors.Count == 0) { AllUserTaskAccess items = new AllUserTaskAccess(); UserTaskAccess existItem = items.Where(i => i.ProjectId == projId && i.TaskId == tskId && i.UserId == userId.Value).Single(); if (existItem != null) { items.Remove(existItem); } items.Save(); } return(errors); }