SearchFormViewModel.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. namespace ContractService.Views.Shared.SearchForm
  4. {
  5. public class SearchFormViewModel
  6. {
  7. public SearchFormViewModel(List<SearchItem> searchItems, string formId = "search-form", bool isSingle = false)
  8. {
  9. FormId = formId;
  10. SearchItems = searchItems.Select(SetDefault).ToList();
  11. IsSingle = isSingle;
  12. }
  13. public bool IsSingle { get; set; }
  14. public string FormId { get; set; }
  15. public string Field { get; set; }
  16. public int FType { get; set; }
  17. public int EType { get; set; }
  18. public List<SearchItem> SearchItems { get; set; }
  19. public SearchFormViewModel SetItems(List<SearchItem> searchItems)
  20. {
  21. SearchItems = searchItems;
  22. return this;
  23. }
  24. public SearchFormViewModel AddItems(List<SearchItem> searchItems)
  25. {
  26. SearchItems = SearchItems ?? new List<SearchItem>();
  27. SearchItems.AddRange(searchItems);
  28. return this;
  29. }
  30. public SearchFormViewModel AddItem(SearchItem searchItem)
  31. {
  32. SearchItems = SearchItems ?? new List<SearchItem>();
  33. SearchItems.Add(searchItem);
  34. return this;
  35. }
  36. private SearchItem SetDefault(SearchItem item)
  37. {
  38. if (string.IsNullOrEmpty(item.FormId))
  39. item.FormId = FormId;
  40. return item;
  41. }
  42. public SearchFormViewModel SetSearchOption(string field, FieldType fieldType = FieldType.I, ExpType expType = ExpType.Equal)
  43. {
  44. Field = field;
  45. FType = (int)fieldType;
  46. EType = (int)expType;
  47. return this;
  48. }
  49. }
  50. public enum FieldType
  51. {
  52. /// <summary>
  53. /// STRING
  54. /// </summary>
  55. S = 0,
  56. /// <summary>
  57. /// INT
  58. /// </summary>
  59. I = 1,
  60. /// <summary>
  61. /// INT
  62. /// </summary>
  63. In = 2,
  64. /// <summary>
  65. /// BOOL
  66. /// </summary>
  67. B = 3,
  68. /// <summary>
  69. /// BOOL
  70. /// </summary>
  71. Bn = 4,
  72. /// <summary>
  73. /// DATETIME
  74. /// </summary>
  75. D = 5,
  76. /// <summary>
  77. /// DATETIME?
  78. /// </summary>
  79. Dn = 6,
  80. /// <summary>
  81. /// long
  82. /// </summary>
  83. L = 7,
  84. /// <summary>
  85. /// long?
  86. /// </summary>
  87. Ln = 8,
  88. /// <summary>
  89. /// short
  90. /// </summary>
  91. Short = 9,
  92. /// <summary>
  93. /// Short?
  94. /// </summary>
  95. Sn = 10,
  96. /// <summary>
  97. /// float
  98. /// </summary>
  99. F = 11,
  100. /// <summary>
  101. /// float
  102. /// </summary>
  103. Fn = 12,
  104. /// <summary>
  105. /// Decimal
  106. /// </summary>
  107. Decimal = 13,
  108. /// <summary>
  109. /// Decimal
  110. /// </summary>
  111. DecimalNull = 14,
  112. /// <summary>
  113. /// Double
  114. /// </summary>
  115. Double = 15,
  116. /// <summary>
  117. /// Double
  118. /// </summary>
  119. DoubleNull = 16
  120. }
  121. public enum ExpType
  122. {
  123. Equal
  124. , NotEqual
  125. , Greater
  126. , Less
  127. , GreaterOrEqual
  128. , LessOrEqual
  129. , Contains
  130. , NotContains
  131. }
  132. }