public void Handle(GeneralQueryResult message) { if (message.Dtos.Any()) { IStorage <IndexProgress> storage = _profileReadonly.Get <IndexProgress>(typeof(IndexProgress).Name); storage.Clear(); storage.Add(new IndexProgress { LastGeneralId = message.Dtos[0].ID.GetValueOrDefault(), }); Send(new CommentQuery { Hql = string.Format( "select c from Comment c join c.General g left join g.ParentProject p where g.EntityType IN ({0}) and (p is null or p.DeleteDate is null) order by c desc skip 0 take 1", _entityTypeProvider.QueryableEntityTypesIdSqlString), IgnoreMessageSizeOverrunFailure = true, Params = new object[] {} }); } else { MarkAsComplete(); } }
public void Handle(GeneralQueryResult message) { if (message.Dtos.Any()) { IStorage <IndexProgress> storage = _profile.Get <IndexProgress>(typeof(IndexProgress).Name); storage.Clear(); storage.Add(new IndexProgress { LastGeneralId = message.Dtos[0].ID.GetValueOrDefault(), }); Send(new CommentQuery { Hql = string.Format( "select c from Comment c join c.General g left join g.ParentProject p where g.EntityType IN ({0}) and (p is null or p.DeleteDate is null) order by c desc skip 0 take 1", _entityTypeProvider.QueryableEntityTypesIdSqlString), IgnoreMessageSizeOverrunFailure = true, Params = new object[] { } }); } else { _documentIndexProvider.ShutdownDocumentIndexes(_pluginContext.AccountName, new DocumentIndexShutdownSetup(forceShutdown: true, cleanStorage: true)); _log.Info("Finished rebuilding indexes"); MarkAsComplete(); } }
public void Handle(GeneralQueryResult message) { if (message.Dtos.Any()) { if (Data.SkipGenerals % 1000 == 0) { _entityIndexer.OptimizeGeneralIndex(); _entityIndexer.OptimizeAssignableIndex(); _entityIndexer.OptimizeTestCaseIndex(); } Data.GeneralsRetrievedCount += message.Dtos.Length; foreach (var general in message.Dtos) { _entityIndexer.AddGeneralIndex(general); } var assignables = message.Dtos.Where(g => _entityTypesProvider.IsAssignable(g.EntityTypeID)).Select(generalDto => generalDto.GeneralID.GetValueOrDefault()).ToArray(); if (assignables.Any()) { Send(new AssignableQuery { Hql = string.Format(AssignablesHql, string.Join(",", assignables)), IgnoreMessageSizeOverrunFailure = true, Params = _param }); } var testCases = message.Dtos.Where(g => _entityTypesProvider.IsTestCase(g.EntityTypeID)).Select(generalDto => generalDto.GeneralID.GetValueOrDefault()).ToArray(); if (testCases.Any()) { Send(new TestCaseQuery { Hql = string.Format(TestCaseHql, string.Join(",", testCases)), IgnoreMessageSizeOverrunFailure = true, Params = _param }); } if (Data.GeneralsRetrievedCount == message.QueryResultCount) { Data.GeneralsRetrievedCount = 0; Data.SkipGenerals += PageSize; Send(new GeneralQuery { Hql = string.Format(GeneralsHql, Data.SkipGenerals, PageSize), IgnoreMessageSizeOverrunFailure = true, Params = _param }); } } else { _entityIndexer.OptimizeGeneralIndex(); _entityIndexer.OptimizeAssignableIndex(); _entityIndexer.OptimizeTestCaseIndex(); Data.CommentsRetrievedCount = 0; Data.GeneralsRetrievedCount = 0; Data.SkipGenerals = 0; Send(new CommentQuery { Hql = string.Format(CommentsHql, Data.SkipComments, PageSize), IgnoreMessageSizeOverrunFailure = true, Params = _param }); } }
public void Handle(GeneralQueryResult message) { _generalsIndexing.Handle(message); }