internal static IQueryable <ClaimMappingEntity> FilterBy(this IQueryable <ClaimMappingEntity> query, ClaimMappingSearchCriteria criteria) => query .FilterBy(
internal static IQueryable <ClaimMappingEntity> FilterBy(this IQueryable <ClaimMappingEntity> query, ClaimMappingSearchCriteria criteria) { var longGuildId = (long?)criteria?.GuildId; var longRoleIds = criteria?.RoleIds?.Select(x => (long)x).ToArray(); var longUserId = (long?)criteria?.UserId; var longCreatedById = (long?)criteria?.CreatedById; var anyRoleIds = longRoleIds?.Any() ?? false; return(query .FilterBy( x => criteria.Types.Contains(x.Type), criteria?.Types?.Any() ?? false) .FilterBy( x => x.GuildId == longGuildId, longGuildId != null) .FilterBy( x => longRoleIds.Contains(x.RoleId.Value) || (x.UserId == longUserId), anyRoleIds && (longUserId != null)) .FilterBy( x => longRoleIds.Contains(x.RoleId.Value), anyRoleIds && (longUserId == null)) .FilterBy( x => (x.UserId == longUserId), !anyRoleIds && (longUserId != null)) .FilterBy( x => criteria.Claims.Contains(x.Claim), criteria?.Claims?.Any() ?? false) .FilterBy( x => x.CreateAction.Created >= criteria.CreatedRange.Value.From.Value, criteria?.CreatedRange?.From != null) .FilterBy( x => x.CreateAction.Created <= criteria.CreatedRange.Value.To.Value, criteria?.CreatedRange?.To != null) .FilterBy( x => x.CreateAction.CreatedById == longCreatedById, longCreatedById != null) .FilterBy( x => (x.DeleteActionId != null) == criteria.IsDeleted.Value, criteria?.IsDeleted != null)); }
internal static IQueryable <ClaimMappingEntity> FilterBy(this IQueryable <ClaimMappingEntity> query, ClaimMappingSearchCriteria criteria) => query .FilterBy( x => criteria.Types.Contains(x.Type), criteria?.Types?.Any() ?? false) .FilterBy(
internal static IQueryable <ClaimMappingEntity> FilterBy(this IQueryable <ClaimMappingEntity> query, ClaimMappingSearchCriteria criteria) => query .FilterBy( x => criteria.Types.Contains(x.Type), criteria?.Types?.Any() ?? false) .FilterBy( x => x.GuildId == criteria.GuildId, criteria?.GuildId != null) .FilterBy( x => ((x.RoleId != null) && criteria.RoleIds.Contains(x.RoleId.Value)) || (x.UserId == criteria.UserId), (criteria?.RoleIds?.Any() ?? false) && (criteria?.UserId != null)) .FilterBy( x => (x.RoleId != null) && criteria.RoleIds.Contains(x.RoleId.Value), (criteria?.RoleIds?.Any() ?? false) && (criteria?.UserId == null)) .FilterBy( x => x.UserId == criteria.UserId, ((criteria?.RoleIds == null) || !criteria.RoleIds.Any()) && (criteria?.UserId != null)) .FilterBy( x => criteria.Claims.Contains(x.Claim), criteria?.Claims?.Any() ?? false) .FilterBy( x => x.CreateAction.Created >= criteria.CreatedRange.Value.From.Value, criteria?.CreatedRange?.From != null) .FilterBy( x => x.CreateAction.Created <= criteria.CreatedRange.Value.To.Value, criteria?.CreatedRange?.To != null) .FilterBy( x => x.CreateAction.CreatedById == criteria.CreatedById, criteria?.CreatedById != null) .FilterBy( x => (x.DeleteActionId != null) == criteria.IsDeleted.Value, criteria?.IsDeleted != null);