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); }