public void Handle(CommentQueryResult message)
        {
            if (message.Dtos.Any())
            {
                if (Data.SkipComments % 1000 == 0)
                {
                    _entityIndexer.OptimizeCommentIndex();
                }

                Data.CommentsRetrievedCount += message.Dtos.Length;

                foreach (var comment in message.Dtos)
                {
                    _entityIndexer.AddCommentIndex(comment);
                }

                if (Data.CommentsRetrievedCount == message.QueryResultCount)
                {
                    Data.CommentsRetrievedCount = 0;
                    Data.SkipComments          += PageSize;

                    Send(new CommentQuery {
                        Hql = string.Format(CommentsHql, Data.SkipComments, PageSize), IgnoreMessageSizeOverrunFailure = true, Params = _param
                    });
                }
            }
            else
            {
                _entityIndexer.OptimizeCommentIndex();
                SendLocal(new IndexExistingEntitiesDoneLocalMessage {
                    SagaId = Data.OuterSagaId
                });
                MarkAsComplete();
            }
        }
예제 #2
0
 public void Handle(CommentQueryResult message)
 {
     foreach (var comment in message.Dtos)
     {
         _entityIndexer.UpdateCommentIndex(comment, new List <CommentField>(), Maybe.Nothing, Maybe.Return(Data.SquadId), DocumentIndexOptimizeSetup.NoOptimize);
     }
     _entityIndexer.OptimizeCommentIndex(DocumentIndexOptimizeSetup.ImmediateOptimize);
     MarkAsComplete();
 }
예제 #3
0
 public void Handle(CommentQueryResult message)
 {
     foreach (var comment in message.Dtos)
     {
         _entityIndexer.UpdateCommentIndex(comment, new List <CommentField>(), Maybe.Return(Data.ProjectId), Maybe.Nothing);
     }
     _entityIndexer.OptimizeCommentIndex();
     MarkAsComplete();
 }
        public void Handle(CommentQueryResult message)
        {
            IStorage <IndexProgress> storage       = _profileReadonly.Get <IndexProgress>(typeof(IndexProgress).Name);
            IndexProgress            indexProgress = storage.FirstOrDefault();

            if (indexProgress != null)
            {
                indexProgress.LastCommentId = message.Dtos.Any() ? message.Dtos[0].ID.GetValueOrDefault() : 0;
                storage.Update(indexProgress, _ => true);
            }
            SendLocal(new IndexExistingEntitiesLocalMessage {
                OuterSagaId = Data.Id
            });
        }
 public void Handle(CommentQueryResult message)
 {
     _commentsIndexing.Handle(message);
 }