ClientAccessConverter.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using SKMC.Api.Core;
  2. using System;
  3. using System.Globalization;
  4. using System.Windows;
  5. using System.Windows.Data;
  6. namespace SKMC.Api.Client.Access
  7. {
  8. /// <summary>
  9. /// 权限码 -> 是否可见的转换器
  10. /// </summary>
  11. public class ClientAccessConverter : IMultiValueConverter
  12. {
  13. private readonly IClientRoleAccesser clientRoleAccesser;
  14. public ClientAccessConverter()
  15. {
  16. clientRoleAccesser = ObjectFactory.Resolve<IClientRoleAccesser>();
  17. }
  18. public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
  19. {
  20. if (values[0] is string accessCode)
  21. {
  22. return clientRoleAccesser.HasAccess(accessCode)
  23. ? Visibility.Visible
  24. : Visibility.Collapsed;
  25. }
  26. return Visibility.Collapsed;
  27. }
  28. public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
  29. {
  30. throw new NotSupportedException();
  31. }
  32. }
  33. }