Ejemplo n.º 1
0
 /// <summary>
 /// Retrieve all tasks based on their task.type (conflict, review or both)
 /// </summary>
 /// <param name="taskIDs">list of ids of tasks to retrieve</param>
 /// <param name="userId">Id of user who has the tasks to retrieve</param>
 /// <param name="count">number of tasks to return</param>
 /// <param name="filter">the given filter </param>
 /// <param name="type">the given type</param>
 /// <returns></returns>
 public IEnumerable<StudyTask> GetTasks(List<int> taskIDs, int userId, int count, TaskRequestDto.Filter filter,
     TaskRequestDto.Type type)
 {
     switch (type)
     {
         case TaskRequestDto.Type.Conflict:
             return (from task in GetTasksFiltered(taskIDs, userId, filter)
                 where task.TaskType == StudyTask.Type.Conflict
                 select task).Take(count);
         case TaskRequestDto.Type.Review:
             return (from task in GetTasksFiltered(taskIDs, userId, filter)
                 where task.TaskType == StudyTask.Type.Review
                 select task).Take(count);
         case TaskRequestDto.Type.Both:
             return (from task in GetTasksFiltered(taskIDs, userId, filter)
                 select task).Take(count);
         default:
             throw new ArgumentOutOfRangeException(nameof(filter), filter, null);
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Retrieve tasks based on a filter
 /// </summary>
 /// <param name="taskIDs">List of Ids of tasks to retrieve</param>
 /// <param name="userId">Id of user who has the tasks to retrieve</param>
 /// <param name="filter">a given filter for which tasks to retrieve</param>
 /// <returns></returns>
 public IEnumerable<StudyTask> GetTasksFiltered(List<int> taskIDs, int userId, TaskRequestDto.Filter filter)
 {
     switch (filter)
     {
         case TaskRequestDto.Filter.Remaining:
             return GetRemainingTasks(taskIDs, userId);
         case TaskRequestDto.Filter.Done:
             return GetFinishedTasks(taskIDs, userId);
         case TaskRequestDto.Filter.Editable:
             return GetEditableTasks(taskIDs, userId);
         default:
             throw new ArgumentOutOfRangeException(nameof(filter), filter, null);
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Return the ids of all tasks for a given user
        /// </summary>
        /// <param name="studyId">Id of the study to retrieve tasks for</param>
        /// <param name="userId">Id of the user to retrieve tasks for</param>
        /// <param name="filter">Filter what kinds of tasks to list (remaining, editible, done)</param>
        /// <param name="type">Choose whether review or conflict tasks to be returned or both</param>
        /// <returns></returns>
        public IEnumerable<int> GetTasksIDs(int studyId, int userId, TaskRequestDto.Filter filter,
            TaskRequestDto.Type type)
        {
            var study = _studyStorageManager.GetAll()
                .Where(s => s.ID == studyId)
                .Include(s => s.Stages.Select(t => t.Tasks))
                .FirstOrDefault();

            if (study == null)
            {
                throw new NullReferenceException("Study not found");
            }
            if (!study.Team.Users.Select(u => u.ID).Contains(userId))
            {
                throw new ArgumentException("The user is not part of this study");
            }

            var taskIDs = study.CurrentStage().Tasks.Select(t => t.ID).ToList();

            return _taskManager.GetTasksIDs(taskIDs, userId, filter, type);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Retrieve ids of tasks, for a given user
 /// </summary>
 /// <param name="taskIDs">List of Ids for tasks to be retrieved</param>
 /// <param name="userId">Id of user to retrieve tasks for</param>
 /// <param name="filter">Filter what kinds of tasks to list(remaining, editible, done)></param>
 /// <param name="type">Choose whether review or conflict tasks to be returned or both</param>
 /// <returns></returns>
 public IEnumerable<int> GetTasksIDs(List<int> taskIDs, int userId, TaskRequestDto.Filter filter,
         TaskRequestDto.Type type)
 {
     return _taskRequester.GetTaskIDs(taskIDs, userId, filter, type);
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Convert tasks to taskDtos
        /// </summary>
        /// <param name="visibleFields"></param>
        /// <param name="taskIDs"></param>
        /// <param name="userId"></param>
        /// <param name="count"></param>
        /// <param name="filter"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public IEnumerable<TaskRequestDto> GetTasksDtOs(ICollection<FieldType> visibleFields, List<int> taskIDs,
            int userId, int count, TaskRequestDto.Filter filter, TaskRequestDto.Type type)
        {
            var tasks = _taskRequester.GetTasks(taskIDs, userId, count, filter, type);

            return from StudyTask task in tasks
                select new TaskRequestDto(task, visibleFields, userId);
        }
Ejemplo n.º 6
0
        public IHttpActionResult GetTasks(int id, int userId, int count = 1,
            TaskRequestDto.Filter filter = TaskRequestDto.Filter.Remaining,
            TaskRequestDto.Type type = TaskRequestDto.Type.Both)
        {
            // GET: api/Study/4/Task?userId=5&count=1&filter=Remaining&type=Review

            try
            {
                return Ok(_controller.GetTasks(id, userId, count, filter, type));
            }
            catch (Exception e)
            {
                if (e.GetType() == typeof (NullReferenceException))
                {
                    return NotFound();
                }
                if (e.GetType() == typeof (ArgumentException))
                {
                    return BadRequest();
                }
                throw;
            }
        }
Ejemplo n.º 7
0
 public IHttpActionResult GetTaskIDs(int id, int userId,
     TaskRequestDto.Filter filter = TaskRequestDto.Filter.Editable,
     TaskRequestDto.Type type = TaskRequestDto.Type.Both)
 {
     // GET: api/Study/4/TaskIDs?userId=5&filter=Editable
     try
     {
         return Ok(_controller.GetTasksIDs(id, userId, filter, type));
     }
     catch (Exception e)
     {
         if (e.GetType() == typeof (NullReferenceException))
         {
             return NotFound();
         }
         if (e.GetType() == typeof (ArgumentException))
         {
             return BadRequest();
         }
         throw;
     }
 }