Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. public static QueryOver<Partner, Partner> ApplyFilterByPartnerType(this QueryOver<Partner, Partner> query,
  2. string[] partnerTypes)
  3. {
  4. if (partnerTypes == null || partnerTypes.Length == 0)
  5. {
  6. // не указали желаемый тип к/а, вернем пустое множество
  7. return query.Where(x => x.Id != x.Id); //!!!
  8. }
  9.  
  10. //в целях оптимизации, если нужны все типы контрагентов
  11.  
  12. if (partnerTypes.Contains("COMPANY", StringComparer.InvariantCultureIgnoreCase)
  13. && partnerTypes.Contains("BRANCH", StringComparer.InvariantCultureIgnoreCase)
  14. && partnerTypes.Contains("PERSON", StringComparer.InvariantCultureIgnoreCase))
  15. {
  16. return query; //!!!
  17. }
  18.  
  19. var disjunction = Restrictions.Disjunction();
  20. if (partnerTypes.Contains("COMPANY", StringComparer.InvariantCultureIgnoreCase))
  21. {
  22. var restriction = Restrictions.Where<Partner>(x => x.GetType() == typeof(Company));
  23. restriction = Restrictions.And(restriction, Restrictions.On<Company>(x => x.HeadCompany).IsNull);
  24. disjunction.Add(restriction);
  25. }
  26.  
  27. if (partnerTypes.Contains("BRANCH", StringComparer.InvariantCultureIgnoreCase))
  28. {
  29. var restriction = Restrictions.Where<Partner>(x => x.GetType() == typeof(Company));
  30. restriction = Restrictions.And(restriction, Restrictions.On<Company>(x => x.HeadCompany).IsNotNull);
  31. disjunction.Add(restriction);
  32. }
  33.  
  34. if (partnerTypes.Contains("PERSON", StringComparer.InvariantCultureIgnoreCase))
  35. {
  36. var restriction = Restrictions.Where<Partner>(x => x.GetType() == typeof(PersonPartner));
  37. disjunction.Add(restriction);
  38. }
  39.  
  40. return query.Where(disjunction);
  41. }
  42.  
  43. return Ok(partners.ToPagedList<PartnerListItemDto>());
  44. }
  45.  
  46. vm.filteredPartners = ["COMPANY", "BRANCH", "PERSON"];
  47. vm.properties = [
  48. { title: "Юр. лицо", value: PartnersTypeConstants.Properties.COMPANY, isSelected: false },
  49. { title: "Обособленное подразделение", value: PartnersTypeConstants.Properties.BRANCH, isSelected: false },
  50. { title: "Физ. лицо", value: PartnersTypeConstants.Properties.PERSON, isSelected: false }
  51. ];
  52.  
  53. vm.selectedValue = [];
  54.  
  55. function setPropertyShortName(propertySelection) {
  56. //vm.selectedValue = !propertySelection.isSelected ? propertySelection.value : undefined;
  57. for (var i = 0; i < vm.properties.length; i++) {
  58. if (vm.properties[i].value === vm.filteredPartners.value) {
  59. vm.properties[i].isSelected = propertySelection.isSelected;
  60.  
  61.  
  62. continue;
  63. }
  64.  
  65. vm.properties[i].isSelected = false;
  66. }
  67.  
  68. search(true);
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement