StatusConfigurationReference.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. using Autofac;
  2. using GreenTree.Nachtragsmanagement.Core;
  3. using GreenTree.Nachtragsmanagement.Services.Appendix;
  4. using GreenTree.Nachtragsmanagement.Services.Deviation;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace GreenTree.Nachtragsmanagement.Services.Configuration
  11. {
  12. public class StatusConfigurationReference : IConfigurationReference
  13. {
  14. /// <summary>
  15. /// Id
  16. /// </summary>
  17. public Guid Id
  18. {
  19. get
  20. {
  21. return Guid.Parse("28A46681-C93E-47F6-99F3-1A6B344124C7");
  22. }
  23. }
  24. /// <summary>
  25. /// Internal name
  26. /// </summary>
  27. public string Name
  28. {
  29. get
  30. {
  31. return "ConfigurationReference.StatusConfigurationReference";
  32. }
  33. }
  34. /// <summary>
  35. /// Display name
  36. /// </summary>
  37. public string DisplayName
  38. {
  39. get
  40. {
  41. return "Vertragsabweichungsstatus";
  42. }
  43. }
  44. /// <summary>
  45. /// Determines if mutiple values are selectable
  46. /// </summary>
  47. public bool IsMultipleSelection
  48. {
  49. get
  50. {
  51. return true;
  52. }
  53. }
  54. /// <summary>
  55. /// Get available values
  56. /// </summary>
  57. public ConfigurationReferenceElement[] GetAvailableValues()
  58. {
  59. var deviationService = Singleton<IContainer>.Instance.Resolve<IDeviationService>();
  60. return
  61. deviationService
  62. .GetAllStatuses()
  63. .Select(s => new ConfigurationReferenceElement
  64. {
  65. Value = s.Id,
  66. Text = s.Description
  67. })
  68. .ToArray();
  69. }
  70. /// <summary>
  71. /// Transforms mutiple selected values into a single line value
  72. /// </summary>
  73. /// <param name="values">Selected values.</param>
  74. public string TransformValueCollectionToValue(string[] values)
  75. {
  76. return
  77. String.Join(", ", values);
  78. }
  79. /// <summary>
  80. /// Transforms the single line value into a mutiple selected values
  81. /// </summary>
  82. /// <param name="value">Single line value.</param>
  83. public string[] TransformValueToValueCollection(string value)
  84. {
  85. return
  86. String.IsNullOrEmpty(value)
  87. ? new string[0]
  88. : value.Split(',')
  89. .Select(s => s.Trim())
  90. .ToArray();
  91. }
  92. /// <summary>
  93. /// Converts the string converted value into strongly typed value
  94. /// </summary>
  95. /// <param name="values">The selected value.</param>
  96. public T GetValue<T>(string value)
  97. {
  98. return (T)((object)Convert.ToInt32(value));
  99. }
  100. /// <summary>
  101. /// Converts the string converted values into strongly typed values
  102. /// </summary>
  103. /// <param name="values">The selected values.</param>
  104. public T GetValues<T>(string[] values)
  105. {
  106. if (values == null)
  107. return default(T);
  108. return
  109. (T)(
  110. (object)
  111. (values
  112. .Select(v => Convert.ToInt32(v))
  113. .ToArray()));
  114. }
  115. }
  116. }