Я пытаюсь реализовать ISearchable на одном из наших модулей.
Visual Studio указывает, что SearchItemInfo устарел и устарел в DNN 7.1.
Я нашел эту статью, но это не такпокажите новый альтернативный код, который я должен использовать, и на GitHub так много внутренних функций.
https://www.dnnsoftware.com/answers/searchdatastorecontroller-is-obsolete-in-71
public SearchItemInfoCollection
GetSearchItems(DotNetNuke.Entities.Modules.ModuleInfo ModInfo)
{
SearchItemInfoCollection SearchItemCollection = new SearchItemInfoCollection();
List<TestModuleInfo> colTestModules = GetTestModules(ModInfo.ModuleID);
foreach (TestModuleInfo objTestModule in colTestModules)
{
SearchItemInfo SearchItem = new SearchItemInfo(ModInfo.ModuleTitle, objTestModule.Content, objTestModule.CreatedByUser, objTestModule.CreatedDate, ModInfo.ModuleID, objTestModule.ItemId.ToString(), objTestModule.Content, "ItemId=" + objTestModule.ItemId.ToString());
SearchItemCollection.Add(SearchItem);
}
return SearchItemCollection;
throw new System.NotImplementedException("The method or operation is not implemented.");
}
Я попытался написать следующий метод и прикрепил точку останова кGetModifiedSearchDocuments и планировщик обхода сайта для сканирования сайта, но он никогда не срабатывает.Кроме того, при реализации этого кода будет ли отображаться флажок на модуле, который позволит вам включать и выключать ISearchable?
//uncomment the interfaces to add the support.
public class FeatureController : ModuleSearchBase
{
public CommonDataDefinitions.Products.WebProductDetails ProductDetails { get; set; } = null;
public override IList<SearchDocument> GetModifiedSearchDocuments(ModuleInfo moduleInfo, DateTime beginDateUtc)
{
var searchDocs = new List<SearchDocument>();
var products = new List<QuickProduct>
{
new QuickProduct("CT4455", "Soundbar", "The soundbar is used for entertainment purposes." ),
new QuickProduct("BD5333", "Laser Pointer", "For Presentations." )
};
foreach (var product in products)
{
var searchDoc = new SearchDocument
{
IsActive = true,
CultureCode = moduleInfo.CultureCode,
Title = product.Title,
Description = product.Description,
Body = product.Description,
};
searchDocs.Add(searchDoc);
}
return searchDocs;
}
}
public class QuickProduct
{
public string SKU { get; set; }
public string Title{ get; set; }
public string Description { get; set; }
public QuickProduct(string SKU, string Title, string Description)
{
this.SKU = SKU;
this.Title = Title;
this.Description = Description;
}
}