public virtual IActionResult List(OnlineUserSearchModel searchModel) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageUsers)) { return(AccessDeniedKendoGridJson()); } //prepare model var model = _userModelFactory.PrepareOnlineUserListModel(searchModel); return(Json(model)); }
/// <summary> /// Prepare online user search model /// </summary> /// <param name="searchModel">Online user search model</param> /// <returns>Online user search model</returns> public virtual OnlineUserSearchModel PrepareOnlineUserSearchModel(OnlineUserSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //prepare page parameters searchModel.SetGridPageSize(); return(searchModel); }
public SummaryDataPageResponse <OnlineUser> GetOnlineUsers(OnlineUserSearchModel searchModel) { var onlineUserList = GetAllOnlineUsers(); var count = onlineUserList.Count; var query = onlineUserList.AsQueryable(); query = ApplySortingRule(query, searchModel, x => x.SessionStartedDate); query = ApplyPagingRule(query, searchModel); return(new SummaryDataPageResponse <OnlineUser>(query.ToList(), searchModel.PageNumber, count, false)); }
/// <summary> /// Prepare paged online user list model /// </summary> /// <param name="searchModel">Online user search model</param> /// <returns>Online user list model</returns> public virtual OnlineUserListModel PrepareOnlineUserListModel(OnlineUserSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //get parameters to filter users var lastActivityFrom = DateTime.UtcNow.AddMinutes(-_userSettings.OnlineUserMinutes); //get online users var users = _userService.GetOnlineUsers(userRoleIds: null, lastActivityFromUtc: lastActivityFrom, pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize); //prepare list model var model = new OnlineUserListModel { Data = users.Select(user => { //fill in model values from the entity var userModel = new OnlineUserModel { Id = user.Id }; //convert dates to the user time userModel.LastActivityDate = _dateTimeHelper.ConvertToUserTime(user.LastActivityDateUtc, DateTimeKind.Utc); //fill in additional values (not existing in the entity) userModel.UserInfo = user.IsRegistered() ? user.Email : _localizationService.GetResource("Admin.Users.Guest"); userModel.LastIpAddress = _userSettings.StoreIpAddresses ? user.LastIpAddress : _localizationService.GetResource("Admin.Users.OnlineUsers.Fields.IPAddress.Disabled"); userModel.Location = _geoLookupService.LookupCountryName(user.LastIpAddress); userModel.LastVisitedPage = _userSettings.StoreLastVisitedPage ? _genericAttributeService.GetAttribute <string>(user, NopUserDefaults.LastVisitedPageAttribute) : _localizationService.GetResource("Admin.Users.OnlineUsers.Fields.LastVisitedPage.Disabled"); return(userModel); }), Total = users.TotalCount }; return(model); }