public void search_service_must_return_expected_messages_when_we_search_by_speach_text()
        {
            var searchService = ServiceLocator.Current.GetInstance <ISearchService>();

            UserMessageSearchResult result = searchService.SearchMessages("fifth message", 0, 100);

            Assert.IsNotNull(result, "Service must return results with message list");
            Assert.AreEqual(1, result.AllResults, "Service must return proper amount of messages when we search by speech");
            Assert.AreEqual(1, result.UserMessages.Count(x => x.Message.Speech.Contains("fifth message")), "Service must return all expected user messages when we search by speech");
        }
        public void search_service_must_return_expected_amount_of_messages_when_we_specify_page()
        {
            var searchService = ServiceLocator.Current.GetInstance <ISearchService>();

            UserMessageSearchResult result = searchService.SearchMessages("some mind", 1, 3);

            Assert.IsNotNull(result, "Service must return results with message list");
            Assert.AreEqual(7, result.AllResults, "Service must return proper amount of messages");
            Assert.AreEqual(3, result.UserMessages.Count(x => x.Message.Mind.Contains("some mind")), "Service must return all expected user messages");
        }
        public SearchViewModel CreateSearchViewModel(Guid watcherUserId, string s)
        {
            UserSearchResult userSearchResult = _searchService.SearchUsers(s, 0, 20);
            var usersViewModel = _usersViewModelService.CreateUsersViewModel(userSearchResult.Users, watcherUserId);

            UserMessageSearchResult userMessageSearchResult = _searchService.SearchMessages(s, 0, 20);
            var timelineViewModel = _messagesViewModelService.CreateTimelineViewModel(null, watcherUserId, userMessageSearchResult.UserMessages);

            var viewModel = new SearchViewModel
            {
                Query             = s,
                AmountOfUsers     = userSearchResult.AllResults,
                AmountOfMessages  = userMessageSearchResult.AllResults,
                Users             = usersViewModel,
                TimelineViewModel = timelineViewModel
            };

            return(viewModel);
        }
Exemplo n.º 4
0
        public UserMessageSearchResult SearchMessages(string s, int page, int amountOnPage)
        {
            IQueryable <UserMessage> allFoundQuery = _userMessageRepository.FindAll()
                                                     .Where(x => x.UserMessageState.UserMessageStateEnum != UserMessageStateEnum.Deleted &&
                                                            x.Message.MessageState.MessageStateEnum == MessageStateEnum.Published &&
                                                            x.UserMessageCreationMode.UserMessageCreationModeEnum == UserMessageCreationModeEnum.ByHimselfNew &&
                                                            (x.Message.Mind.Contains(s) || x.Message.Speech.Contains(s)));

            int allResults = allFoundQuery.Count();
            IQueryable <UserMessage> partResultQuery = allFoundQuery.OrderBy(x => x.CreationDate).Skip(page * amountOnPage).Take(amountOnPage);

            var userMessageSearchResult = new UserMessageSearchResult {
                AmountOnPage = amountOnPage,
                Page         = page,
                AllResults   = allResults,
                UserMessages = partResultQuery.ToList()
            };

            return(userMessageSearchResult);
        }