btcpayserver-plugin-builder/PluginBuilder/ViewModels/CreateBuildViewModel.cs
2025-04-24 22:54:41 -05:00

41 lines
1.1 KiB
C#

#nullable disable
using System.ComponentModel.DataAnnotations;
namespace PluginBuilder.ViewModels;
public class CreateBuildViewModel
{
[Required(AllowEmptyStrings = false)]
[Display(Name = "Git repository")]
public string GitRepository { get; set; }
[Display(Name = "Git branch or tag (optional)")]
public string GitRef { get; set; }
[Display(Name = "Directory to the plugin's project (optional)")]
public string PluginDirectory { get; set; }
[Display(Name = "Dotnet build configuration (optional)")]
public string BuildConfig { get; set; }
public PluginBuildParameters ToBuildParameter()
{
return new PluginBuildParameters(Normalize(GitRepository))
{
BuildConfig = BuildConfig,
GitRef = GitRef,
PluginDirectory = PluginDirectory is null ? null : Normalize(PluginDirectory)
};
}
private static string Normalize(string str)
{
ArgumentNullException.ThrowIfNull(str);
str = str.Trim();
// Strip trailing /
if (str.EndsWith('/'))
str = str.Substring(0, str.Length - 1);
return str;
}
}