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