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); }
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)); }
public PageDto <TaskDto, ITask> GetTasksByFilter([FromBody] TaskFilterDto filter) { return(new PageDto <TaskDto, ITask>(repositoryContext.GetTasksByFilter(filter), x => new TaskDto(x))); }
public async Task <IEnumerable <TaskItem> > GetFilteredTasks([FromQuery] TaskFilterDto taskFilterDto) { var tasks = await _taskService.GetFiltered(taskFilterDto); return(tasks); }