private QueryResultData CreateQueryResultData(QueryResult result) { return new QueryResultData { GeneralIds = result.GeneralIds.ToArray(), AssignableIds = result.AssignableIds.ToArray(), TestCaseIds = result.TestCaseIds.ToArray(), CommentIds = result.CommentIds, QueryString = result.QueryString, Total = result.Total, IndexProgressData = CreateIndexingProgress(result) }; }
private QueryResult CreateResult(QueryRunResult queryResult, QueryData queryData) { QueryEntityTypeProvider.SearchResult result = _queryResultFactory.CreateQueryResult(queryResult.Entities); var searchResult = new QueryResult { GeneralIds = result.GeneralIds.ToArray(), AssignableIds = result.AssignableIds.ToArray(), TestCaseIds = result.TestCaseIds.ToArray(), CommentIds = queryResult.Comments.Select(i => i.FileName).ToArray(), QueryString = queryData.Query, Total = queryResult.EntitiesTotalCount + queryResult.CommentsTotalCount, LastIndexedEntityId = queryResult.LastIndexedEntityId, LastIndexedCommentId = queryResult.LastIndexedCommentId }; return searchResult; }
private IndexProgressData CreateIndexingProgress(QueryResult result) { if (_profile.Initialized) { return new IndexProgressData { CompleteInPercents = 100 }; } IStorage<IndexProgress> indexProgressStorage = _profile.Get<IndexProgress>(typeof (IndexProgress).Name); IndexProgress indexProgress = indexProgressStorage.FirstOrDefault(); if (indexProgress == null) { return new IndexProgressData { CompleteInPercents = 0 }; } int allEntities = indexProgress.LastGeneralId + indexProgress.LastCommentId; double completeInPercents = allEntities != 0 ? (double)((result.LastIndexedEntityId + result.LastIndexedCommentId)*100)/allEntities : 0; return new IndexProgressData { CompleteInPercents = Math.Round(completeInPercents, 2) }; }