Exemple #1
0
        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);
        }
Exemple #4
0
 public ReportContainerModel()
 {
     ListSignedIn      = new SignedInLogSearchModel();
     ListTransActivity = new TransActivitySearchModel();
 }