81654c0d33
Add normalized service and template catalogs, scoped administration, migration, validation, and regression coverage. Ref: IT-1601
29 lines
1.4 KiB
C#
29 lines
1.4 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace HrynCo.NotificationService.Web.Controllers.Admin.ViewModels;
|
|
|
|
public sealed class EmailTemplateLanguageEditViewModel : IValidatableObject
|
|
{
|
|
[Required, StringLength(10)]
|
|
public string LanguageCode { get; set; } = "";
|
|
[DisplayFormat(ConvertEmptyStringToNull = false)]
|
|
public string Subject { get; set; } = "";
|
|
[DisplayFormat(ConvertEmptyStringToNull = false)]
|
|
public string HtmlBody { get; set; } = "";
|
|
[DisplayFormat(ConvertEmptyStringToNull = false)]
|
|
public string TextBody { get; set; } = "";
|
|
public bool HasContent => !string.IsNullOrWhiteSpace(Subject) || !string.IsNullOrWhiteSpace(HtmlBody) || !string.IsNullOrWhiteSpace(TextBody);
|
|
|
|
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
|
{
|
|
if (!HasContent)
|
|
yield break;
|
|
if (string.IsNullOrWhiteSpace(Subject))
|
|
yield return new ValidationResult("The Subject field is required for a populated language.", [nameof(Subject)]);
|
|
if (string.IsNullOrWhiteSpace(HtmlBody))
|
|
yield return new ValidationResult("The HtmlBody field is required for a populated language.", [nameof(HtmlBody)]);
|
|
if (string.IsNullOrWhiteSpace(TextBody))
|
|
yield return new ValidationResult("The TextBody field is required for a populated language.", [nameof(TextBody)]);
|
|
}
|
|
}
|