/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <param name="umbracoHelper"></param> /// <param name="indexerName"></param> private void Indexer_DocumentWriting(object sender, DocumentWritingEventArgs e, UmbracoHelper umbracoHelper, string indexerName) { IPublishedContent publishedContent = null; publishedContent = umbracoHelper.TypedContent(e.NodeId); if (publishedContent == null) { // attempt to get as media publishedContent = umbracoHelper.TypedMedia(e.NodeId); if (publishedContent == null) { // attempt to get as member publishedContent = umbracoHelper.SafeTypedMember(e.NodeId); } } if (publishedContent != null) { this.EnsureUmbracoContext(); var indexingContext = new IndexingContext(null, publishedContent, indexerName); LookService.Index(indexingContext, e.Document); } }
/// <summary> /// Index the supplied things /// </summary> /// <param name="things">The things to add into the index</param> /// <param name="beforeIndexing">optional action to call before indexing each thing</param> /// <param name="afterIndexing">optional acton to call after indexing each thing</param> internal static void IndexThings(IEnumerable <Thing> things, Action <IndexingContext> beforeIndexing = null, Action <IndexingContext> afterIndexing = null) { var nameStack = new Stack <string>(things.Select(x => x.Name)); var dateStack = new Stack <DateTime?>(things.Select(x => x.Date)); var textStack = new Stack <string>(things.Select(x => x.Text)); var tagStack = new Stack <LookTag[]>(things.Select(x => x.Tags)); var locationStack = new Stack <Location>(things.Select(x => x.Location)); // use supplied, or do nothing LookConfiguration.BeforeIndexing = beforeIndexing; LookConfiguration.AfterIndexing = afterIndexing; // setup indexers LookConfiguration.DefaultNameIndexer = x => nameStack.Pop(); LookConfiguration.DefaultDateIndexer = x => dateStack.Pop(); LookConfiguration.DefaultTextIndexer = x => textStack.Pop(); LookConfiguration.DefaultTagIndexer = x => tagStack.Pop(); LookConfiguration.DefaultLocationIndexer = x => locationStack.Pop(); List <Document> documents = new List <Document>(); foreach (var thing in things) { var document = new Document(); var indexingContext = new IndexingContext(null, null, "UnitTestIndexer"); // null for IPublishedContent as not required LookService.Index(indexingContext, document); if (!indexingContext.Cancelled) { documents.Add(document); } } //reset LookConfiguration.BeforeIndexing = null; LookConfiguration.AfterIndexing = null; LookConfiguration.DefaultNameIndexer = null; LookConfiguration.DefaultDateIndexer = null; LookConfiguration.DefaultTextIndexer = null; LookConfiguration.DefaultTagIndexer = null; LookConfiguration.DefaultLocationIndexer = null; TestHelper.IndexDocuments(documents); }
//internal static void GenerateTestData() //{ // // generate a load of random test data, just to bulk it out //} /// <summary> /// Add supplied collection into the test index /// </summary> /// <param name="things"></param> internal static void IndexThings(IEnumerable <Thing> things) { var nameStack = new Stack <string>(things.Select(x => x.Name)); var dateStack = new Stack <DateTime?>(things.Select(x => x.Date)); var textStack = new Stack <string>(things.Select(x => x.Text)); var tagStack = new Stack <LookTag[]>(things.Select(x => x.Tags)); var locationStack = new Stack <Location>(things.Select(x => x.Location)); // setup indexers LookConfiguration.NameIndexer = x => nameStack.Pop(); LookConfiguration.DateIndexer = x => dateStack.Pop(); LookConfiguration.TextIndexer = x => textStack.Pop(); LookConfiguration.TagIndexer = x => tagStack.Pop(); LookConfiguration.LocationIndexer = x => locationStack.Pop(); // null for IPublishedContent as not required var indexingContext = new IndexingContext(null, null, null); List <Document> documents = new List <Document>(); foreach (var thing in things) { var document = new Document(); LookService.Index(indexingContext, document); documents.Add(document); } // reset indexers LookConfiguration.NameIndexer = null; LookConfiguration.DateIndexer = null; LookConfiguration.TextIndexer = null; LookConfiguration.TagIndexer = null; LookConfiguration.LocationIndexer = null; TestHelper.IndexDocuments(documents); }