@namespace Oqtane.Modules.Admin.Visitors @inherits ModuleBase @inject IVisitorService VisitorService @inject ISiteService SiteService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer @if (_visitors == null) {

@SharedLocalizer["Loading"]

} else {

@Localizer["IP"] @Localizer["User"] @Localizer["Language"] @Localizer["Visits"] @Localizer["Visited"]
@context.IPAddress @if (context.UserId != null) { @context.User.DisplayName } @context.Language @context.Visits @context.VisitedOn

} @code { private bool _users = false; private int _days = 1; private List _visitors; private string _visitortracking; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; protected override async Task OnParametersSetAsync() { await GetVisitors(); _visitortracking = PageState.Site.VisitorTracking.ToString(); } private async void TypeChanged(ChangeEventArgs e) { try { _users = bool.Parse(e.Value.ToString()); await GetVisitors(); StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error On TypeChanged"); } } private async void DateChanged(ChangeEventArgs e) { try { _days = int.Parse(e.Value.ToString()); await GetVisitors(); StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error On DateChanged"); } } private async Task GetVisitors() { _visitors = await VisitorService.GetVisitorsAsync(PageState.Site.SiteId, DateTime.UtcNow.AddDays(-_days)); if (_users) { _visitors = _visitors.Where(item => item.UserId != null).ToList(); } } private async Task SaveSiteSettings() { try { var site = PageState.Site; site.VisitorTracking = bool.Parse(_visitortracking); await SiteService.UpdateSiteAsync(site); 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); } } }