protected override IList <HeadwordResource> ExecuteWorkImplementation() { var headwordsDbResult = m_bookRepository.SearchHeadwordByCriteriaQuery(m_queryCreator); var headwordIds = headwordsDbResult.Select(x => x.Id).ToList(); var headwords = m_resourceRepository.GetHeadwordWithFetch(headwordIds); var orderedResultHeadwords = new List <HeadwordResource>(headwords.Count); foreach (var headwordId in headwordIds) { var headword = headwords.First(x => x.Id == headwordId); orderedResultHeadwords.Add(headword); } return(orderedResultHeadwords); }