Files
LanMountainDesktop/airapp/LanMountainDesktop.AirAppSdk/AirAppSettingOptionDefinition.cs

54 lines
1.6 KiB
C#
Raw Normal View History

2026-03-13 00:33:00 +08:00
using System.Collections.Generic;
2026-08-11 23:03:55 +08:00
namespace LanMountainDesktop.AirAppSdk;
2026-03-13 00:33:00 +08:00
2026-08-11 23:03:55 +08:00
public sealed class AirAppSettingOptionDefinition
2026-03-13 00:33:00 +08:00
{
2026-08-11 23:03:55 +08:00
public AirAppSettingOptionDefinition(
2026-03-13 00:33:00 +08:00
string key,
2026-08-11 23:03:55 +08:00
AirAppSettingOptionType optionType,
2026-03-13 00:33:00 +08:00
string titleLocalizationKey,
string? descriptionLocalizationKey = null,
object? defaultValue = null,
2026-08-11 23:03:55 +08:00
IReadOnlyList<AirAppSettingOptionChoice>? choices = null,
2026-03-13 00:33:00 +08:00
double? minimum = null,
double? maximum = null,
string? validationPattern = null)
{
ArgumentException.ThrowIfNullOrWhiteSpace(key);
ArgumentException.ThrowIfNullOrWhiteSpace(titleLocalizationKey);
Key = key.Trim();
OptionType = optionType;
TitleLocalizationKey = titleLocalizationKey.Trim();
DescriptionLocalizationKey = string.IsNullOrWhiteSpace(descriptionLocalizationKey)
? null
: descriptionLocalizationKey.Trim();
DefaultValue = defaultValue;
Choices = choices ?? [];
Minimum = minimum;
Maximum = maximum;
ValidationPattern = string.IsNullOrWhiteSpace(validationPattern)
? null
: validationPattern.Trim();
}
public string Key { get; }
2026-08-11 23:03:55 +08:00
public AirAppSettingOptionType OptionType { get; }
2026-03-13 00:33:00 +08:00
public string TitleLocalizationKey { get; }
public string? DescriptionLocalizationKey { get; }
public object? DefaultValue { get; }
2026-08-11 23:03:55 +08:00
public IReadOnlyList<AirAppSettingOptionChoice> Choices { get; }
2026-03-13 00:33:00 +08:00
public double? Minimum { get; }
public double? Maximum { get; }
public string? ValidationPattern { get; }
}