@namespace Oqtane.Modules.Admin.Search @inherits ModuleBase @inject ISettingService SettingService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer




@code { public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; private string _searchProvider; private string _enabled = "True"; private string _lastIndexedOn = ""; private string _ignorePages = ""; private string _ignoreEntities = ""; private string _minimumWordLength = "3"; private string _ignoreWords = "the,be,to,of,and,a,i,in,that,have,it,for,not,on,with,he,as,you,do,at,this,but,his,by,from,they,we,say,her,she,or,an,will,my,one,all,would,there,their,what,so,up,out,if,about,who,get,which,go,me,when,make,can,like,time,no,just,him,know,take,people,into,year,your,good,some,could,them,see,other,than,then,now,look,only,come,its,over,think,also,back,after,use,two,how,our,work,first,well,way,even,new,want,because,any,these,give,day,most,us"; protected override async Task OnInitializedAsync() { var settings = await SettingService.GetSiteSettingsAsync(PageState.Site.SiteId); _searchProvider = SettingService.GetSetting(settings, "Search_SearchProvider", Constants.DefaultSearchProviderName); _enabled = SettingService.GetSetting(settings, "Search_Enabled", _enabled); _lastIndexedOn = SettingService.GetSetting(settings, "Search_LastIndexedOn", _lastIndexedOn); _ignorePages = SettingService.GetSetting(settings, "Search_IgnorePages", _ignorePages); _ignoreEntities = SettingService.GetSetting(settings, "Search_IgnoreEntities", _ignoreEntities); _minimumWordLength = SettingService.GetSetting(settings, "Search_MininumWordLength", _minimumWordLength); _ignoreWords = SettingService.GetSetting(settings, "Search_IgnoreWords", _ignoreWords); } private async Task Save() { try { var settings = await SettingService.GetSiteSettingsAsync(PageState.Site.SiteId); settings = SettingService.SetSetting(settings, "Search_SearchProvider", _searchProvider); settings = SettingService.SetSetting(settings, "Search_Enabled", _enabled, true); settings = SettingService.SetSetting(settings, "Search_LastIndexedOn", _lastIndexedOn, true); settings = SettingService.SetSetting(settings, "Search_IgnorePages", _ignorePages, true); settings = SettingService.SetSetting(settings, "Search_IgnoreEntities", _ignoreEntities, true); settings = SettingService.SetSetting(settings, "Search_MininumWordLength", _minimumWordLength, true); settings = SettingService.SetSetting(settings, "Search_IgnoreWords", _ignoreWords, true); await SettingService.UpdateSiteSettingsAsync(settings, PageState.Site.SiteId); AddModuleMessage(Localizer["Success.Save"], MessageType.Success); } catch (Exception ex) { await logger.LogError(ex, "Error Saving Search Settings {Error}", ex.Message); AddModuleMessage(Localizer["Error.Save"], MessageType.Error); } } private async Task Reindex() { try { _lastIndexedOn = DateTime.MinValue.ToString(); var settings = await SettingService.GetSiteSettingsAsync(PageState.Site.SiteId); settings = SettingService.SetSetting(settings, "Search_LastIndexedOn", _lastIndexedOn, true); await SettingService.UpdateSiteSettingsAsync(settings, PageState.Site.SiteId); AddModuleMessage(Localizer["Message.Reindex"], MessageType.Success); } catch (Exception ex) { await logger.LogError(ex, "Error Saving Search Settings {Error}", ex.Message); AddModuleMessage(Localizer["Error.Save"], MessageType.Error); } } }