| 123456789101112131415161718192021222324252627282930313233343536 |
- using Diligent.WebAPI.Contracts.DTOs.Files;
-
- namespace Diligent.WebAPI.Business.Extensions
- {
- [ExcludeFromCodeCoverage]
- public static class FileExtensions
- {
- public static IQueryable<FileEntity> FilterByExtension(this IQueryable<FileEntity> query, string[]? values)
- {
- if (values == null || values.Length == 0)
- return query;
- return query.Where(n => values.Contains(n.Extension));
- }
- public static IQueryable<FileEntity> FilterByCategory(this IQueryable<FileEntity> query, string[]? values)
- {
- if (values == null || values.Length == 0)
- return query;
- return query.Where(n => values.Contains(n.Category.Name));
- }
- public static IQueryable<FileEntity> FilterByTags(this IQueryable<FileEntity> query, string[]? values)
- {
- if (values == null || values.Length == 0)
- return query;
- //return query.Where(n => values.Any(x => n.Tags.Any(y => y.Name == x)));
- return query.Where(n => n.Tags.Any(x => values.Contains(x.Name)));
- }
-
- public static IQueryable<FileEntity> FilterFiles(this IQueryable<FileEntity> query, FileFilter filters)
- {
- return query
- .FilterByCategory(filters.Categories)
- .FilterByExtension(filters.Extensions)
- .FilterByTags(filters.Tags);
- }
- }
- }
|