Пример #1
0
        public async Task <FindItemResponse> Handle(FindItemRequest request, CancellationToken cancellationToken)
        {
            var user = await _userAccountRepository.GetUserAccountAsync(request.User);

            var userLists = await _userListRepository.GetListsAsync(user);

            var(overdueCount, dueCount, totalCount, totalWithDueDateCount, userListCounts) = await _userListRepository.GetListCountsAsync(user);

            var(lists, _) = GetListItemsRequestHandler.GetUserListModels(userLists, overdueCount, dueCount, totalCount, totalWithDueDateCount, userListCounts);

            var items = string.IsNullOrWhiteSpace(request.SearchQuery) ? new List <UserItem>() : await _userItemRepository.FindItemsByQueryAsync(user, request.SearchQuery.Trim());

            return(new FindItemResponse(lists, items.Select(i => new UserItemModel(i))));
        }