Beispiel #1
0
        protected virtual PagedViewModel <EmployeeListViewModel> GetFilteredPaged(
            string includeProperties = null, int page = 1, int pageSize = ConstWebApi.DefaultPageSize,
            string sort = null, string dir            = "", Expression <Func <ApplicationUser, bool> > filter = null)
        {
            var isAdmin = _permissionService.UserHasPermission(GetUserAndOrganization(), AdministrationPermissions.ApplicationUser);

            string sortQuery = string.IsNullOrEmpty(sort) ? null : $"{sort} {dir}";

            IPagedList <ApplicationUser> models = _applicationUserRepository.Get(
                includeProperties: includeProperties, filter: filter, orderBy: sortQuery ?? null)
                                                  .Where(_roleService.ExcludeUsersWithRole(Roles.NewUser))
                                                  .ToPagedList(page, pageSize);

            var pagedVM = new StaticPagedList <EmployeeListViewModel>(_mapper.Map <IEnumerable <ApplicationUser>, IEnumerable <EmployeeListViewModel> >(models), models.PageNumber, models.PageSize, models.TotalItemCount);

            if (!isAdmin)
            {
                foreach (var model in pagedVM)
                {
                    model.BirthDay    = BirthdayDateTimeHelper.RemoveYear(model.BirthDay);
                    model.PhoneNumber = null;
                }
            }

            var result = new PagedViewModel <EmployeeListViewModel>
            {
                PagedList = pagedVM,
                PageCount = pagedVM.PageCount,
                ItemCount = pagedVM.TotalItemCount,
                PageSize  = pageSize
            };

            return(result);
        }
        private void InfoWithAdditionalPermissions(ApplicationUser user, ApplicationUserDetailsViewModel model)
        {
            var isAdmin      = _permissionService.UserHasPermission(GetUserAndOrganization(), AdministrationPermissions.ApplicationUser);
            var usersProfile = User.Identity.GetUserId() == user.Id;

            if (isAdmin)
            {
                var roles = GetUserRoles(user.Id);
                model.Roles = _mapper.Map <IEnumerable <ApplicationRoleMiniViewModel> >(roles);
            }

            if (!isAdmin && !usersProfile)
            {
                model.BirthDay    = BirthdayDateTimeHelper.RemoveYear(model.BirthDay);
                model.PhoneNumber = null;
            }
        }
        private async Task <PagedViewModel <EmployeeListViewModel> > GetFilteredPaged(string includeProperties = null,
                                                                                      int page     = 1,
                                                                                      int pageSize = WebApiConstants.DefaultPageSize,
                                                                                      string sort  = null,
                                                                                      string dir   = "",
                                                                                      Expression <Func <ApplicationUser, bool> > filter = null)
        {
            var isAdmin = await _permissionService.UserHasPermissionAsync(GetUserAndOrganization(), AdministrationPermissions.ApplicationUser);

            var newUserRoleId = await _roleService.GetRoleIdByNameAsync(Roles.NewUser);

            var sortQuery = string.IsNullOrEmpty(sort) ? null : $"{sort} {dir}";

            var models = await _applicationUserRepository
                         .Get(includeProperties : includeProperties, filter : filter, orderBy : sortQuery)
                         .Where(_roleService.ExcludeUsersWithRole(newUserRoleId))
                         .ToPagedListAsync(page, pageSize);

            var employeeListViewModels = _mapper.Map <IEnumerable <ApplicationUser>, IEnumerable <EmployeeListViewModel> >(models);
            var pagedModel             = new StaticPagedList <EmployeeListViewModel>(employeeListViewModels, models.PageNumber, models.PageSize, models.TotalItemCount);

            if (!isAdmin)
            {
                foreach (var model in pagedModel)
                {
                    model.BirthDay    = BirthdayDateTimeHelper.RemoveYear(model.BirthDay);
                    model.PhoneNumber = null;
                }
            }

            var result = new PagedViewModel <EmployeeListViewModel>
            {
                PagedList = pagedModel,
                PageCount = pagedModel.PageCount,
                ItemCount = pagedModel.TotalItemCount,
                PageSize  = pageSize
            };

            return(result);
        }