public async Task <IActionResult> ListSignedIn(SignedInLogSearchModel searchModel) { if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageReports)) { return(AccessDeniedKendoGridJson()); } var model = await _reportModelFactory.PrepareSignedInLogListModel(searchModel); return(Json(model)); }
public async Task <SignedInLogSearchModel> PrepareSignedInLogSearchModel(SignedInLogSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } searchModel.SetGridPageSize(); return(await Task.FromResult(searchModel)); }
public async Task <SignedInLogListModel> PrepareSignedInLogListModel(SignedInLogSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } var startLoginDateValue = searchModel.LastLoginFrom == null ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(searchModel.LastLoginFrom.Value, _dateTimeHelper.CurrentTimeZone); var endLoginDateValue = searchModel.LastLoginTo == null ? null : (DateTime?)_dateTimeHelper .ConvertToUtcTime(searchModel.LastLoginTo.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1); var users = await _userService.GetUsersAsync( lastLoginFrom : startLoginDateValue, lastLoginTo : endLoginDateValue, ipAddress : searchModel.LastIpAddress, pageIndex : searchModel.Page - 1, pageSize : searchModel.PageSize); var model = new SignedInLogListModel { Data = users.Where(user => user.LastLoginDateUtc != null) .Select(user => { var signedInModel = user.ToModel <SignedInLogModel>(); signedInModel.UserId = user.Id; if (user.LastLoginDateUtc.HasValue) { signedInModel.LastLoginDate = _dateTimeHelper.ConvertToUserTime(user.LastLoginDateUtc.Value, DateTimeKind.Utc); } return(signedInModel); }), Total = users.TotalCount }; // sort if (searchModel.Sort != null && searchModel.Sort.Any()) { foreach (var s in searchModel.Sort) { model.Data = await model.Data.Sort(s.Field, s.Dir); } } // filter if (searchModel.Filter?.Filters != null && searchModel.Filter.Filters.Any()) { var filter = searchModel.Filter; model.Data = await model.Data.Filter(filter); model.Total = model.Data.Count(); } return(model); }
public ReportContainerModel() { ListSignedIn = new SignedInLogSearchModel(); ListTransActivity = new TransActivitySearchModel(); }