| 123456789101112131415161718192021222324252627282930313233343536 |
- using Diligent.WebAPI.Contracts.DTOs.Files;
-
- namespace Diligent.WebAPI.Business.Extensions
- {
- [ExcludeFromCodeCoverage]
- public static class FileExtensions
- {
- public static List<FileFilterReturnDto> FilterByExtension(this List<FileFilterReturnDto> query, string[]? values)
- {
- if (values == null || values.Length == 0)
- return query;
- return query.Where(n => values.Contains(n.file_type)).ToList();
- }
- public static List<FileFilterReturnDto> FilterByCategory(this List<FileFilterReturnDto> query, string[]? values)
- {
- if (values == null || values.Length == 0)
- return query;
- return query.Where(n => values.Contains(n.Category.CategoryName)).ToList();
- }
- public static List<FileFilterReturnDto> FilterByTags(this List<FileFilterReturnDto> 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.TagName))).ToList();
- }
-
- public static List<FileFilterReturnDto> FilterFiles(this List<FileFilterReturnDto> query, FileFilter filters)
- {
- return query
- .FilterByCategory(filters.Categories)
- .FilterByExtension(filters.Extensions)
- .FilterByTags(filters.Tags);
- }
- }
- }
|