@namespace Oqtane.Modules.Admin.Visitors @using System.Globalization @inherits ModuleBase @inject NavigationManager NavigationManager @inject IVisitorService VisitorService @inject IUserService UserService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer @if (_initialized) {
@if (_user != string.Empty) {
}
} @SharedLocalizer["Cancel"] @code { private bool _initialized = false; private int _visitorId; private string _ip = string.Empty; private string _language = string.Empty; private string _useragent = string.Empty; private string _url = string.Empty; private string _referrer = string.Empty; private string _user = string.Empty; private string _visits = string.Empty; private string _visited = string.Empty; private string _created = string.Empty; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; protected override async Task OnInitializedAsync() { try { _visitorId = Int32.Parse(PageState.QueryString["id"]); var visitor = await VisitorService.GetVisitorAsync(_visitorId); if (visitor != null) { _ip = visitor.IPAddress; _language = visitor.Language; _useragent = visitor.UserAgent; _url = visitor.Url; _referrer = visitor.Referrer; _visits = visitor.Visits.ToString(); _visited = visitor.VisitedOn.ToString(CultureInfo.CurrentCulture); _created = visitor.CreatedOn.ToString(CultureInfo.CurrentCulture); if (visitor.UserId != null) { var user = await UserService.GetUserAsync(visitor.UserId.Value, PageState.Site.SiteId); if (user != null) { _user = user.DisplayName; } } _initialized = true; } else { AddModuleMessage(Localizer["Error.LoadVisitor"], MessageType.Error); } } catch (Exception ex) { await logger.LogError(ex, "Error Loading Visitor {VisitorId} {Error}", _visitorId, ex.Message); AddModuleMessage(Localizer["Error.LoadVisitor"], MessageType.Error); } } private string CloseUrl() { return (!string.IsNullOrEmpty(PageState.ReturnUrl)) ? PageState.ReturnUrl : NavigateUrl(); } }