Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

SelectionProcessExtensions.cs 1.5KB

12345678910111213141516171819202122232425262728293031323334353637
  1. namespace Diligent.WebAPI.Business.Extensions
  2. {
  3. public static class SelectionProcessExtensions
  4. {
  5. public static List<SelectionLevel> FilterLevels(this List<SelectionLevel> query, SelectionProcessFilterDto filter)
  6. {
  7. var filteredLevels = new List<SelectionLevel>();
  8. // If filters are empty
  9. if ((filter == null) || (!filter.DateStart.HasValue && !filter.DateEnd.HasValue && filter.Statuses != null && filter.Statuses.Length == 0))
  10. return query;
  11. foreach (var level in query)
  12. {
  13. List<SelectionProcess> selectionProcesses = level.SelectionProcesses;
  14. if (filter.DateStart.HasValue)
  15. {
  16. selectionProcesses = level.SelectionProcesses.Where(sp => sp.Date >= filter.DateStart.Value).ToList();
  17. }
  18. if (filter.DateEnd.HasValue)
  19. {
  20. selectionProcesses = selectionProcesses.Where(sp => sp.Date <= filter.DateEnd.Value).ToList();
  21. }
  22. var filteredLevel = new SelectionLevel { Id = level.Id, Name = level.Name, SelectionProcesses = level.SelectionProcesses};
  23. if(filter.Statuses != null && filter.Statuses.Length > 0) {
  24. filteredLevel.SelectionProcesses = selectionProcesses.Where(f => filter.Statuses.Contains(f.Status)).ToList();
  25. }
  26. filteredLevels.Add(filteredLevel);
  27. }
  28. return filteredLevels;
  29. }
  30. }
  31. }