Какую информацию можно вернуть в DotNetNuke ModuleSearchBase через контроллер API? - PullRequest
0 голосов
/ 07 сентября 2018

В настоящее время у нас есть следующий код в нашем пользовательском модуле DNN:

 public class FeatureController : ModuleSearchBase
    {

        public CommonDataDefinitions.Products.WebProductDetails ProductDetails { get; set; } = null;


        public override IList<SearchDocument> GetModifiedSearchDocuments(ModuleInfo moduleInfo, DateTime beginDateUtc)
        {

            var searchDocuments = new List<SearchDocument>
            {
                WHAT CAN I RETURN HERE?
            };

            return searchDocuments;

            throw new NotImplementedException();
        }
    }

Наш модуль детального просмотра продукта извлекает следующую информацию в зависимости от SKU в строке запроса при загрузке с помощью веб-контроллера API.

  • Product.Title
  • Product.Description
  • Product.Image
  • Product.Price
  • Product.DetailedDescription
  • Product.StockCode Product.MetaTitle
  • Product.MetaKeywords
  • Product.MetaDescription

Код SearchModulebase будет в классе FeatureController. Эта страница будет загружаться каждый раз, когда кто-то подробно рассматривает продукт при переходе из модуля фильтра продукта.

1. Так как модуль будет загружаться каждый раз, когда кто-то нажимает на тот или иной товар. Как запустить этот код только один раз и вернуть все продукты из API Controller? Нужно ли нам создавать Объект, который будет извлекать все?

2. Как предотвратить замедление работы модуля, когда все продукты должны быть извлечены при событии загрузки?

3. Какую информацию SearchDocument можно вернуть индексатору DNN для индексации?

4. Когда DNN Crawler считывает код Feature Controller, как вы инициализируете свой API Controller для того, чтобы пойти и получить и заполнить результаты для индексации?

...