/// <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); }
/// <summary> /// 在线用户列表 /// </summary> /// <param name="provinceId">省id</param> /// <param name="cityId">市id</param> /// <param name="regionId">区/县id</param> /// <param name="sortColumn">排序列</param> /// <param name="sortDirection">排序方向</param> /// <param name="pageNumber">当前页数</param> /// <param name="pageSize">每页数</param> /// <returns></returns> public ActionResult OnlineUserList(string sortColumn, string sortDirection, int provinceId = -1, int cityId = -1, int regionId = -1, int pageNumber = 1, int pageSize = 15) { int locationType = 0, locationId = 0; if (regionId > 0) { locationType = 2; locationId = regionId; } else if (cityId > 0) { locationType = 1; locationId = cityId; } else if (provinceId > 0) { locationType = 0; locationId = provinceId; } string sort = OnlineUsers.GetOnlineUserListSort(sortColumn, sortDirection); PageModel pageModel = new PageModel(pageSize, pageNumber, OnlineUsers.GetOnlineUserCount(locationType, locationId)); OnlineUserListModel model = new OnlineUserListModel() { OnlineUserList = OnlineUsers.GetOnlineUserList(pageModel.PageSize, pageModel.PageNumber, locationType, locationId, sort), PageModel = pageModel, SortColumn = sortColumn, SortDirection = sortDirection, ProvinceId = provinceId, CityId = cityId, RegionId = regionId }; MallUtils.SetAdminRefererCookie(string.Format("{0}?pageNumber={1}&pageSize={2}&sortColumn={3}&sortDirection={4}&provinceId={5}&cityId={6}®ionId={7}", Url.Action("onlineuserlist"), pageModel.PageNumber, pageModel.PageSize, sortColumn, sortDirection, provinceId, cityId, regionId)); return(View(model)); }
/// <summary> /// 在线用户列表 /// </summary> /// <param name="provinceId">省id</param> /// <param name="cityId">市id</param> /// <param name="regionId">区/县id</param> /// <param name="pageNumber">当前页数</param> /// <param name="pageSize">每页数</param> /// <returns></returns> public ActionResult OnlineUserList(int provinceId = -1, int cityId = -1, int regionId = -1, int pageNumber = 1, int pageSize = 15) { int locationType = 0, locationId = 0; if (regionId > 0) { locationType = 2; locationId = regionId; } else if (cityId > 0) { locationType = 1; locationId = cityId; } else if (provinceId > 0) { locationType = 0; locationId = provinceId; } PageModel pageModel = new PageModel(pageSize, pageNumber, OnlineUsers.GetOnlineUserCount(locationType, locationId)); OnlineUserListModel model = new OnlineUserListModel() { PageModel = pageModel, OnlineUserList = OnlineUsers.GetOnlineUserList(pageModel.PageSize, pageModel.PageNumber, locationType, locationId), ProvinceId = provinceId, CityId = cityId, RegionId = regionId }; ShopUtils.SetAdminRefererCookie(string.Format("{0}?pageNumber={1}&pageSize={2}&provinceId={3}&cityId={4}®ionId={5}", Url.Action("onlineuserlist"), pageModel.PageNumber, pageModel.PageSize, provinceId, cityId, regionId)); return(View(model)); }