Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

SelectionProcessExtensions.cs 1.5KB

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