private FilterToWorkItem GetFilters()
        {
            var search   = WorkItemSearch.Text.Length >= 3 ? WorkItemSearch.Text : string.Empty;
            var week     = (WeekViewModel)CbbWeek.SelectedItem;
            var epic     = (EpicViewModel)CbbEpic.SelectedItem;
            var type     = (WorkType?)CbbType.SelectedItem;
            var status   = (WorkStatus?)CbbStatus.SelectedItem;
            var assignee = (AssigneeViewModel)CbbAssignee.SelectedItem;
            var team     = CbbTeam.SelectedItem?.ToString();
            var techDebt = TechDebt.IsChecked;

            var filter = new FilterToWorkItem
            {
                Search   = search,
                Week     = week,
                Epic     = epic,
                Type     = type,
                Status   = status,
                Assignee = assignee,
                Team     = team,
                TechDebt = techDebt
            };

            return(filter);
        }
        private void LoadWorkItems(FilterToWorkItem filter)
        {
            _workItems = _workApplicationService.GetWorkItemsByFilter(filter);

            DataGridWorkItem.ItemsSource = null;
            DataGridWorkItem.ItemsSource = _workItems;

            ScreenTitle.Content = string.Format("Work Items - amount activities: {0}", _workItems.Count());
        }
Ejemplo n.º 3
0
        public IEnumerable <WorkItemViewModel> GetWorkItemsByFilter(FilterToWorkItem filter)
        {
            var result = _workRepository.GetAll().ToList();

            if (!string.IsNullOrEmpty(filter.Search))
            {
                result = result.Where(x => x.IssueId.Contains(filter.Search)).ToList();
            }

            if (filter.Week != null)
            {
                var week = _mapper.Map <Week>(filter.Week);
                result = result.Where(x => x.WeekId == week.Id).ToList();
            }

            if (filter.Epic != null)
            {
                var epic = _mapper.Map <Epic>(filter.Epic);
                result = result.Where(x => x.EpicId == epic.Id).ToList();
            }

            if (filter.Type != null)
            {
                result = result.Where(x => x.Type == filter.Type).ToList();
            }

            if (filter.Status != null)
            {
                result = result.Where(x => x.Status == filter.Status).ToList();
            }

            if (filter.TechDebt != null)
            {
                result = result.Where(x => x.TechDebt == filter.TechDebt).ToList();
            }

            if (filter.Assignee != null)
            {
                var assignee = _mapper.Map <Assignee>(filter.Assignee);
                result = result.Where(x => x.AssigneeId == assignee.Id).ToList();
            }

            if (!string.IsNullOrWhiteSpace(filter.Team))
            {
                result = result.Where(x => x.Team == filter.Team).ToList();
            }

            result = result.Select(x =>
            {
                if (x.AssigneeId.HasValue)
                {
                    var assignee = _assigneeRepository.Find(x.AssigneeId.GetValueOrDefault());
                    x.SetAssignee(assignee);
                }

                var epic = _epicRepository.Find(x.EpicId);
                x.SetEpic(epic);

                return(x);
            }).ToList();

            var workItems = _mapper.Map <IEnumerable <WorkItemViewModel> >(result);

            workItems = workItems.Select(x =>
            {
                x.StatusDate = GetStatusDate(x);
                return(x);
            }).ToList();

            return(workItems.OrderByDescending(x => x.UpdatedAt).ToList());
        }