Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

FileExtensions.cs 1.5KB

123456789101112131415161718192021222324252627282930313233343536
  1. using Diligent.WebAPI.Contracts.DTOs.Files;
  2. namespace Diligent.WebAPI.Business.Extensions
  3. {
  4. [ExcludeFromCodeCoverage]
  5. public static class FileExtensions
  6. {
  7. public static List<FileFilterReturnDto> FilterByExtension(this List<FileFilterReturnDto> query, string[]? values)
  8. {
  9. if (values == null || values.Length == 0)
  10. return query;
  11. return query.Where(n => values.Contains(n.File_type)).ToList();
  12. }
  13. public static List<FileFilterReturnDto> FilterByCategory(this List<FileFilterReturnDto> query, string[]? values)
  14. {
  15. if (values == null || values.Length == 0)
  16. return query;
  17. return query.Where(n => values.Contains(n.Category.CategoryName)).ToList();
  18. }
  19. public static List<FileFilterReturnDto> FilterByTags(this List<FileFilterReturnDto> query, string[]? values)
  20. {
  21. if (values == null || values.Length == 0)
  22. return query;
  23. //return query.Where(n => values.Any(x => n.Tags.Any(y => y.Name == x)));
  24. return query.Where(n => n.Tags.Any(x => values.Contains(x.TagName))).ToList();
  25. }
  26. public static List<FileFilterReturnDto> FilterFiles(this List<FileFilterReturnDto> query, FileFilter filters)
  27. {
  28. return query
  29. .FilterByCategory(filters.Categories)
  30. .FilterByExtension(filters.Extensions)
  31. .FilterByTags(filters.Tags);
  32. }
  33. }
  34. }