LabelTemplatePrintOrientationHelper.cs
1.2 KB
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using Volo.Abp;
namespace FoodLabeling.Application.Helpers;
/// <summary>
/// 标签模板 <c>PrintOrientation</c> 归一化与校验(库值 / API:<c>vertical</c>、<c>horizontal</c>)。
/// </summary>
public static class LabelTemplatePrintOrientationHelper
{
/// <summary>竖打</summary>
public const string Vertical = "vertical";
/// <summary>横打</summary>
public const string Horizontal = "horizontal";
/// <summary>
/// 空或未识别时默认 <see cref="Vertical"/>;横打时不交换 Width/Height。
/// </summary>
public static string Normalize(string? raw)
{
var v = (raw ?? string.Empty).Trim().ToLowerInvariant();
return v == Horizontal ? Horizontal : Vertical;
}
/// <summary>
/// 非空且非 vertical/horizontal 时抛出友好异常。
/// </summary>
public static void EnsureValidOrThrow(string? raw)
{
if (string.IsNullOrWhiteSpace(raw))
{
return;
}
var v = raw.Trim().ToLowerInvariant();
if (v is Vertical or Horizontal)
{
return;
}
throw new UserFriendlyException("printOrientation 仅支持 vertical 或 horizontal");
}
}