public IHttpActionResult IndexDocuments([FromBody] IndexingOptions[] options) { var currentUserName = _userNameResolver.GetCurrentUserName(); var notification = IndexingJobs.Enqueue(currentUserName, options); _pushNotifier.Upsert(notification); return(Ok(notification)); }
public ActionResult <IndexProgressPushNotification> IndexDocuments([FromBody] IndexingOptions[] options) { var currentUserName = _userNameResolver.GetCurrentUserName(); var notification = IndexingJobs.Enqueue(currentUserName, options); _pushNotifier.Send(notification); return(Ok(notification)); }
public void GroupingTests(List <IndexEntry> sourceEntries, IEnumerable <IGrouping <string, IndexEntry> > expectGroupedEntries) { // Arrange // Act var result = IndexingJobs.GetGroupedByTypeAndDistinctedByChangeTypeIndexEntries(sourceEntries).ToList(); // Assert foreach (var expectGroupedEntry in expectGroupedEntries) { var resultEntries = result.First(x => x.Key == expectGroupedEntry.Key).Select(x => x).ToList(); Assert.Equal(expectGroupedEntry.ToList(), resultEntries, new IndexEntriesEqualityComparer()); } }
public Task Handle(DemoCustomerSegmentChangedEvent message) { if (message == null) { throw new ArgumentNullException(nameof(message)); } // Index all members var userName = message.ChangedEntries.Select(x => x.NewEntry.ModifiedBy ?? x.OldEntry.ModifiedBy).FirstOrDefault(x => !x.IsNullOrEmpty()); IndexingJobs.Enqueue(userName, new[] { new IndexingOptions { DocumentType = KnownDocumentTypes.Member } }); return(Task.CompletedTask); }
public Task Handle(MemberChangedEvent message) { if (message == null) { throw new ArgumentNullException(nameof(message)); } var indexEntries = message.ChangedEntries .Select(x => new IndexEntry { Id = x.OldEntry.Id, EntryState = x.EntryState, Type = KnownDocumentTypes.Member }) .ToArray(); IndexingJobs.EnqueueIndexAndDeleteDocuments(indexEntries); return(Task.CompletedTask); }
public async Task Handle(ProductChangedEvent message) { if (await _settingsManager.GetValueAsync(ModuleConstants.Settings.General.EventBasedIndexation.Name, false)) { if (message == null) { throw new ArgumentNullException(nameof(message)); } var indexEntries = message.ChangedEntries .Select(x => new IndexEntry { Id = x.OldEntry.Id, EntryState = x.EntryState, Type = KnownDocumentTypes.Product }) .ToArray(); IndexingJobs.EnqueueIndexAndDeleteDocuments(indexEntries); } }
public Task Handle(PriceChangedEvent message) { if (_settingsManager.GetValue(Core.ModuleConstants.Settings.General.EventBasedIndexation.Name, false)) { if (message == null) { throw new ArgumentNullException(nameof(message)); } var indexEntries = message.ChangedEntries .Select(x => new IndexEntry { Id = x.OldEntry.ProductId, EntryState = EntryState.Modified, Type = KnownDocumentTypes.Product }) .ToArray(); IndexingJobs.EnqueueIndexAndDeleteDocuments(indexEntries); } return(Task.CompletedTask); }
public IHttpActionResult CancelIndexationProcess(string taskId) { IndexingJobs.CancelIndexation(); return(Ok()); }