Blame view

美国版/Food Labeling Management Code/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/MenuParentIdConverter.cs 989 Bytes
c2e3194d   李曜臣   登陆优化;产品-门店绑定优化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  namespace Yi.Framework.Rbac.Domain.Shared;
  
  /// <summary>
  /// <c>Menu.ParentId</c> 在部分库中为 <c>varchar</c>(如根节点为 <c>0</c>),与 ORM  Guid 映射不一致时会导致 SqlSugar 绑定失败;统一用字符串落库并在需要时转为 <see cref="Guid"/>
  /// </summary>
  public static class MenuParentIdConverter
  {
      public static bool IsRoot(string? raw) =>
          string.IsNullOrWhiteSpace(raw) ||
          raw.Trim() == "0" ||
          string.Equals(raw.Trim(), Guid.Empty.ToString(), StringComparison.OrdinalIgnoreCase);
  
      public static Guid ToGuid(string? raw)
      {
          if (IsRoot(raw))
          {
              return Guid.Empty;
          }
  
          var t = raw!.Trim();
          return Guid.TryParse(t, out var g) ? g : Guid.Empty;
      }
  
      /// <summary>写入数据库:根节点与历史库对齐为 <c>0</c>,否则为标准 GUID 字符串。</summary>
      public static string FromGuid(Guid g) => g == Guid.Empty ? "0" : g.ToString("D");
  }