Ejemplo n.º 1
0
            private void Create(ContentEvent @event, NamedContentData data)
            {
                var uniqueId = DomainId.Combine(@event.AppId, @event.ContentId);

                var state = new TextContentState
                {
                    UniqueContentId = uniqueId
                };

                state.GenerateDocIdCurrent();

                Index(@event,
                      new UpsertIndexEntry
                {
                    ContentId      = @event.ContentId,
                    DocId          = state.DocIdCurrent,
                    ServeAll       = true,
                    ServePublished = false,
                    Texts          = data.ToTexts()
                });

                states[state.UniqueContentId] = state;

                updates[state.UniqueContentId] = state;
            }
Ejemplo n.º 2
0
        private async Task UpdateAsync(ContentEvent @event, NamedContentData data)
        {
            var state = await textIndexerState.GetAsync(@event.ContentId);

            if (state != null)
            {
                if (state.DocIdNew != null)
                {
                    await IndexAsync(@event,
                                     new UpsertIndexEntry
                    {
                        ContentId      = @event.ContentId,
                        DocId          = state.DocIdNew,
                        ServeAll       = true,
                        ServePublished = false,
                        Texts          = data.ToTexts()
                    },
                                     new UpdateIndexEntry
                    {
                        DocId          = state.DocIdCurrent,
                        ServeAll       = false,
                        ServePublished = true
                    });

                    state.DocIdForPublished = state.DocIdCurrent;
                }
                else
                {
                    var isPublished = state.DocIdCurrent == state.DocIdForPublished;

                    await IndexAsync(@event,
                                     new UpsertIndexEntry
                    {
                        ContentId      = @event.ContentId,
                        DocId          = state.DocIdCurrent,
                        ServeAll       = true,
                        ServePublished = isPublished,
                        Texts          = data.ToTexts()
                    });

                    state.DocIdForPublished = state.DocIdNew;
                }

                await textIndexerState.SetAsync(state);
            }
        }
Ejemplo n.º 3
0
            private void Update(ContentEvent @event, NamedContentData data)
            {
                var uniqueId = DomainId.Combine(@event.AppId, @event.ContentId);

                if (states.TryGetValue(uniqueId, out var state))
                {
                    if (state.DocIdNew != null)
                    {
                        Index(@event,
                              new UpsertIndexEntry
                        {
                            ContentId      = @event.ContentId,
                            DocId          = state.DocIdNew,
                            GeoObjects     = data.ToGeo(jsonSerializer),
                            ServeAll       = true,
                            ServePublished = false,
                            Texts          = data.ToTexts()
                        });

                        Index(@event,
                              new UpdateIndexEntry
                        {
                            DocId          = state.DocIdCurrent,
                            ServeAll       = false,
                            ServePublished = true
                        });
                    }
                    else
                    {
                        var isPublished = state.DocIdCurrent == state.DocIdForPublished;

                        Index(@event,
                              new UpsertIndexEntry
                        {
                            ContentId      = @event.ContentId,
                            DocId          = state.DocIdCurrent,
                            GeoObjects     = data.ToGeo(jsonSerializer),
                            ServeAll       = true,
                            ServePublished = isPublished,
                            Texts          = data.ToTexts()
                        });
                    }
                }
            }
Ejemplo n.º 4
0
        private async Task CreateAsync(ContentEvent @event, NamedContentData data)
        {
            var state = new TextContentState
            {
                ContentId = @event.ContentId
            };

            state.GenerateDocIdCurrent();

            await IndexAsync(@event,
                             new UpsertIndexEntry
            {
                ContentId      = @event.ContentId,
                DocId          = state.DocIdCurrent,
                ServeAll       = true,
                ServePublished = false,
                Texts          = data.ToTexts(),
            });

            await textIndexerState.SetAsync(state);
        }
Ejemplo n.º 5
0
 private static Update Data(Guid contentId, NamedContentData data, bool onlyDraft)
 {
     return(new Update {
         Id = contentId, Text = data.ToTexts(), OnlyDraft = onlyDraft
     });
 }