Exemple #1
0
        /// <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);
        }
Exemple #3
0
        //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);
        }