@namespace Oqtane.Modules.Admin.Logs @inherits ModuleBase @inject ILogService LogService @inject ISettingService SettingService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer @if (_logs == null) {

@SharedLocalizer["Loading"]

} else {







@if (_logs.Any()) {
  @Localizer["Date"] @Localizer["Level"] @Localizer["Feature"] @Localizer["Function"]
@context.LogDate @context.Level @context.Feature @context.Function
} else {

@Localizer["NoLogs"]

}

} @code { private string _level = "-"; private string _function = "-"; private string _rows = "10"; private int _page = 1; private List _logs; private string _retention = ""; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; protected override async Task OnInitializedAsync() { try { if (PageState.QueryString.ContainsKey("level")) { _level = PageState.QueryString["level"]; } if (PageState.QueryString.ContainsKey("function")) { _function = PageState.QueryString["function"]; } if (PageState.QueryString.ContainsKey("rows")) { _rows = PageState.QueryString["rows"]; } if (PageState.QueryString.ContainsKey("page") && int.TryParse(PageState.QueryString["page"], out int page)) { _page = page; } await GetLogs(); var settings = await SettingService.GetSiteSettingsAsync(PageState.Site.SiteId); _retention = SettingService.GetSetting(settings, "LogRetention", "30"); } catch (Exception ex) { await logger.LogError(ex, "Error Loading Logs {Error}", ex.Message); AddModuleMessage(Localizer["Error.Log.Load"], MessageType.Error); } } private async void LevelChanged(ChangeEventArgs e) { try { _level = (string)e.Value; await GetLogs(); StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error Loading Logs {Error}", ex.Message); AddModuleMessage(Localizer["Error.Log.Load"], MessageType.Error); } } private async void FunctionChanged(ChangeEventArgs e) { try { _function = (string)e.Value; await GetLogs(); StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error Loading Logs {Error}", ex.Message); AddModuleMessage(Localizer["Error.Log.Load"], MessageType.Error); } } private async void RowsChanged(ChangeEventArgs e) { try { _rows = (string)e.Value; await GetLogs(); StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error Loading Logs {Error}", ex.Message); AddModuleMessage(Localizer["Error.Log.Load"], MessageType.Error); } } private async Task GetLogs() { _logs = await LogService.GetLogsAsync(PageState.Site.SiteId, ((_level == "-") ? string.Empty : _level), ((_function == "-") ? string.Empty : _function), int.Parse(_rows)); } private string GetClass(string function) { string classname = string.Empty; switch (function) { case "Create": classname = "table-success"; break; case "Read": classname = "table-primary"; break; case "Update": classname = "table-warning"; break; case "Delete": classname = "table-danger"; break; case "Security": classname = "table-secondary"; break; default: classname = string.Empty; break; } return classname; } private async Task SaveSiteSettings() { try { var settings = await SettingService.GetSiteSettingsAsync(PageState.Site.SiteId); settings = SettingService.SetSetting(settings, "LogRetention", _retention, true); await SettingService.UpdateSiteSettingsAsync(settings, PageState.Site.SiteId); AddModuleMessage(Localizer["Success.SaveSiteSettings"], MessageType.Success); } catch (Exception ex) { await logger.LogError(ex, "Error Saving Site Settings {Error}", ex.Message); AddModuleMessage(Localizer["Error.SaveSiteSettings"], MessageType.Error); } } private void OnPageChange(int page) { _page = page; } }