public async Task <PagedResultDto <PlaqueToStateListDto> > GetPlaqueToState(GetPlaqueToStateInput input)
        {
            var query = GetFilteredQuery(input);
            var user  = await UserManager.GetUserByIdAsync(AbpSession.GetUserId());

            var isAdmin = await UserManager.IsInRoleAsync(user, StaticRoleNames.Host.Admin);

            var isSysAdmin = await UserManager.IsInRoleAsync(user, StaticRoleNames.Host.SysAdmin);

            var isStateAdmin = await UserManager.IsInRoleAsync(user, StaticRoleNames.Host.StateAdmin);

            var isCityAdmin = await UserManager.IsInRoleAsync(user, StaticRoleNames.Host.CityAdmin);

            var isOfficer = await UserManager.IsInRoleAsync(user, StaticRoleNames.Host.Officer);

            if (isAdmin || isSysAdmin)
            {
                query = query;
            }
            else if (isStateAdmin)
            {
                var union = _unionInfoRepository.FirstOrDefault(x => x.UserId == AbpSession.UserId);
                query = query.Where(x => x.StateInfoId == union.StateInfoId);
            }
            else
            {
                query = query.Where(x => false);
            }
            var userCount = await query.CountAsync();

            var plaqueToStates = await query
                                 .OrderBy(input.Sorting)
                                 .PageBy(input)
                                 .ToListAsync();

            var plaqueToStatesListDto = ObjectMapper.Map <List <PlaqueToStateListDto> >(plaqueToStates);

            return(new PagedResultDto <PlaqueToStateListDto>(
                       userCount,
                       plaqueToStatesListDto
                       ));
        }
        private IQueryable <PlaqueToState> GetFilteredQuery(GetPlaqueToStateInput input)
        {
            long tempSearch = 0;

            try
            {
                tempSearch = Convert.ToInt64(input.Filter);
            }
            catch (Exception e)
            {
            }
            var query = QueryableExtensions.WhereIf(
                _plaqueToStateRepository.GetAll()
                .Include(x => x.StateInfo)
                .Include(x => x.PlaqueStore)
                .ThenInclude(x => x.Species),
                !input.Filter.IsNullOrWhiteSpace(), u =>
                (u.FromCode <= tempSearch &&
                 u.ToCode >= tempSearch) ||
                u.StateInfo.Name.Contains(input.Filter) ||
                u.PlaqueStore.Species.Name.Contains(input.Filter));

            return(query);
        }