public async Task AnyAsync_ClaimMappingsDoNotExist_ReturnsFalse(ClaimMappingSearchCriteria criteria)
        {
            (var modixContext, var uut) = BuildTestContext();

            var result = await uut.AnyAsync(criteria);

            result.ShouldBeFalse();
        }
        public async Task SearchBriefsAsync_ClaimMappingsDoNotExist_ReturnsEmpty(ClaimMappingSearchCriteria criteria)
        {
            (var modixContext, var uut) = BuildTestContext();

            var result = await uut.SearchBriefsAsync(criteria);

            result.ShouldNotBeNull();
            result.ShouldBeEmpty();
        }
        public async Task SearchIdsAsync_ClaimMappingsExist_ReturnsMatchingIds(ClaimMappingSearchCriteria criteria, long[] resultIds)
        {
            (var modixContext, var uut) = BuildTestContext();

            var result = await uut.SearchIdsAsync(criteria);

            result.ShouldNotBeNull();
            result.ShouldBe(resultIds);
        }
        public async Task SearchBriefsAsync_ClaimMappingsExist_ReturnsMatchingBriefs(ClaimMappingSearchCriteria criteria, long[] resultIds)
        {
            (var modixContext, var uut) = BuildTestContext();

            var result = await uut.SearchBriefsAsync(criteria);

            result.ShouldNotBeNull();
            result.Select(x => x.Id).ShouldBe(resultIds);
            result.EachShould(x => x.ShouldMatchTestData());
        }
Beispiel #5
0
        private async Task <int> RescindClaimMappingsUnauthorized(ClaimMappingSearchCriteria criteria, ulong rescindedById)
        {
            var claimMappingIds = await ClaimMappingRepository.SearchIdsAsync(criteria);

            foreach (var claimMappingId in claimMappingIds)
            {
                await ClaimMappingRepository.TryRescindAsync(claimMappingId, rescindedById);
            }

            return(claimMappingIds.Count);
        }
 /// <inheritdoc />
 public async Task <IReadOnlyCollection <ClaimMappingBrief> > SearchBriefsAsync(ClaimMappingSearchCriteria criteria)
 => await ModixContext.ClaimMappings.AsNoTracking()
 .FilterBy(criteria)
 .AsExpandable()
 .Select(ClaimMappingBrief.FromEntityProjection)
 .ToArrayAsync();
 /// <inheritdoc />
 public async Task <IReadOnlyCollection <long> > SearchIdsAsync(ClaimMappingSearchCriteria criteria)
 => await ModixContext.ClaimMappings.AsNoTracking()
 .FilterBy(criteria)
 .Select(x => x.Id)
 .ToArrayAsync();
 /// <inheritdoc />
 public Task <bool> AnyAsync(ClaimMappingSearchCriteria criteria)
 => ModixContext.ClaimMappings.AsNoTracking()
 .FilterBy(criteria)
 .AnyAsync();
Beispiel #9
0
        internal static IQueryable <ClaimMappingEntity> FilterClaimMappingsBy(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));
        }