예제 #1
0
        public async Task <IEnumerable <TaskItem> > GetFiltered(TaskFilterDto filter)
        {
            List <TaskItem> filteredTaskItems;

            if (filter.ProjectId > 0)
            {
                filteredTaskItems = (await GetTasksByProject(filter.ProjectId)).ToList();
            }
            else
            {
                filteredTaskItems = (await _taskRepository.GetAll()).ToList();
            }

            if (filter.AssignedUsersId != null && filter.AssignedUsersId.Any())
            {
                filteredTaskItems = filteredTaskItems.Where(x => filter.AssignedUsersId.Contains(x.AssignedUserId))
                                    .ToList();
            }


            if (filter.StatusesId != null && filter.StatusesId.Any())
            {
                filteredTaskItems = filteredTaskItems.Where(x => filter.StatusesId.Contains(x.StatusId))
                                    .ToList();
            }


            if (filter.TaskTypesId != null && filter.TaskTypesId.Any())
            {
                filteredTaskItems = filteredTaskItems.Where(x => filter.TaskTypesId.Contains(x.TaskTypeId))
                                    .ToList();
            }

            return(filteredTaskItems);
        }
예제 #2
0
        public ActionResult Index(TaskFilterDto filterBox)
        {
            SetHeaders("Zadania", "Lista wszystkich zadań", "Index", "Task");

            var taskList = new List <TaskItem>();

            if (CurrentUser.HasClaim("Administrator"))
            {
                taskList = _hermesDataContext.TaskItems.Where(x => x.Group.IsActive).ToList();
            }
            else
            {
                foreach (var group in CurrentUser.UserGroups.Where(x => x.Group.IsActive))
                {
                    var tasksForCurrentGroup = _hermesDataContext.TaskItems.Where(x => x.GroupId == group.GroupId);
                    if (tasksForCurrentGroup.Any())
                    {
                        taskList.AddRange(tasksForCurrentGroup);
                    }
                }
            }

            var assignedToYou = _hermesDataContext.TaskItems.Where(x => x.SelectedUserId == CurrentUser.Id).ToList();

            foreach (var tasks in assignedToYou)
            {
                if (taskList.All(x => x.Id != tasks.Id))
                {
                    taskList.Add(tasks);
                }
            }

            var tasksDto = taskList.Select(x => new TaskListDto()
            {
                Group           = x.Group,
                GroupId         = x.GroupId,
                ApplicationUser = x.SelectedUser,
                CreateDate      = x.CreateDate,
                CreatedBy       = x.CreatedBy,
                CreatedById     = x.CreatedById,
                Note            = x.Note,
                Title           = x.Title,
                EndDate         = x.EndDate,
                DeadlineDate    = x.DeadlineDate,
                Id         = x.Id,
                ItemStatus = x.ItemStatus
            }).ToList();

            var dataFormatter = new TaskDataFormat(filterBox);

            SetViewParams(dataFormatter.SortParam, dataFormatter.Page, dataFormatter.PageSize);

            ViewBag.PageSize = dataFormatter.PageSize;
            var listData = dataFormatter.GetFormattedData(tasksDto)
                           .ToPagedList(dataFormatter.Page, dataFormatter.PageSize);

            return(PartialView("_PagedListPartial", listData));
        }
예제 #3
0
 public PageDto <TaskDto, ITask> GetTasksByFilter([FromBody] TaskFilterDto filter)
 {
     return(new PageDto <TaskDto, ITask>(repositoryContext.GetTasksByFilter(filter), x => new TaskDto(x)));
 }
예제 #4
0
        public async Task <IEnumerable <TaskItem> > GetFilteredTasks([FromQuery] TaskFilterDto taskFilterDto)
        {
            var tasks = await _taskService.GetFiltered(taskFilterDto);

            return(tasks);
        }