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; }
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); } }
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() }); } } }
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); }
private static Update Data(Guid contentId, NamedContentData data, bool onlyDraft) { return(new Update { Id = contentId, Text = data.ToTexts(), OnlyDraft = onlyDraft }); }