public async Task <PagedResultDto <GetRoleMapperForViewDto> > GetAll(GetAllRoleMappersInput input)
        {
            var filteredRoleMappers = _roleMapperRepository.GetAll()
                                      .WhereIf(!string.IsNullOrWhiteSpace(input.Filter), e => false)
                                      .WhereIf(input.MinRoleIdFilter != null, e => e.RoleId >= input.MinRoleIdFilter)
                                      .WhereIf(input.MaxRoleIdFilter != null, e => e.RoleId <= input.MaxRoleIdFilter)
                                      .WhereIf(input.MinLabelIdFilter != null, e => e.LabelId >= input.MinLabelIdFilter)
                                      .WhereIf(input.MaxLabelIdFilter != null, e => e.LabelId <= input.MaxLabelIdFilter)
                                      .WhereIf(input.MinMenuIdFilter != null, e => e.MenuId >= input.MinMenuIdFilter)
                                      .WhereIf(input.MaxMenuIdFilter != null, e => e.MenuId <= input.MaxMenuIdFilter)
                                      .WhereIf(input.IsActiveFilter > -1, e => (input.IsActiveFilter == 1 && e.IsActive) || (input.IsActiveFilter == 0 && !e.IsActive));

            var pagedAndFilteredRoleMappers = filteredRoleMappers
                                              .OrderBy(input.Sorting ?? "id asc")
                                              .PageBy(input);
            var lbls        = _labelRepository.GetAll();
            var roles       = _roleRepository.GetAll();
            var roleMappers = from o in pagedAndFilteredRoleMappers

                              join lbl in lbls on o.LabelId equals lbl.Id into lblJoin
                              from joinelbl in lblJoin.DefaultIfEmpty()

                              join role in roles on o.RoleId equals role.Id into roleJoin
                              from joinerole in roleJoin.DefaultIfEmpty()


                              select new GetRoleMapperForViewDto()
            {
                RoleMapper = new RoleMapperDto
                {
                    RoleId   = o.RoleId,
                    Name     = o.Name,
                    LabelId  = o.LabelId,
                    MenuId   = o.MenuId,
                    IsActive = o.IsActive,
                    Id       = o.Id
                },
                LabelNameValue = joinelbl == null ? "" : joinelbl.Name.ToString(),
                RoleNameValue = joinerole == null ? "" : joinerole.DisplayName.ToString(),
            };

            var totalCount = await filteredRoleMappers.CountAsync();

            return(new PagedResultDto <GetRoleMapperForViewDto>(
                       totalCount,
                       await roleMappers.ToListAsync()
                       ));
        }
        public async Task <PagedResultDto <GetRoleMapperForViewDto> > GetAll(GetAllRoleMappersInput input)
        {
            var filteredRoleMappers = _roleMapperRepository.GetAll()
                                      .WhereIf(!string.IsNullOrWhiteSpace(input.Filter), e => false)
                                      .WhereIf(input.MinRoleIdFilter != null, e => e.RoleId >= input.MinRoleIdFilter)
                                      .WhereIf(input.MaxRoleIdFilter != null, e => e.RoleId <= input.MaxRoleIdFilter)
                                      .WhereIf(input.MinLabelIdFilter != null, e => e.LabelId >= input.MinLabelIdFilter)
                                      .WhereIf(input.MaxLabelIdFilter != null, e => e.LabelId <= input.MaxLabelIdFilter)
                                      .WhereIf(input.MinMenuIdFilter != null, e => e.MenuId >= input.MinMenuIdFilter)
                                      .WhereIf(input.MaxMenuIdFilter != null, e => e.MenuId <= input.MaxMenuIdFilter)
                                      .WhereIf(input.IsActiveFilter > -1, e => (input.IsActiveFilter == 1 && e.IsActive) || (input.IsActiveFilter == 0 && !e.IsActive));

            var pagedAndFilteredRoleMappers = filteredRoleMappers
                                              .OrderBy(input.Sorting ?? "id asc")
                                              .PageBy(input);

            var roleMappers = from o in pagedAndFilteredRoleMappers
                              select new GetRoleMapperForViewDto()
            {
                RoleMapper = new RoleMapperDto
                {
                    RoleId   = o.RoleId,
                    Name     = o.Name,
                    LabelId  = o.LabelId,
                    MenuId   = o.MenuId,
                    IsActive = o.IsActive,
                    Id       = o.Id
                }
            };

            var totalCount = await filteredRoleMappers.CountAsync();

            return(new PagedResultDto <GetRoleMapperForViewDto>(
                       totalCount,
                       await roleMappers.ToListAsync()
                       ));
        }