@using HrynCo.NotificationService.Web.Controllers.Admin.ViewModels @model ServiceTemplatesViewModel @{ ViewData["Title"] = Model.Service.Name; var serviceId = Model.Service.Id; var keyFilter = Model.KeyFilter; }
Configured languages: @if (Model.Service.Languages.Count == 0) { No languages configured for this service. } else { @foreach (var language in Model.Service.Languages) { @language.Code } }
@if (Model.Definitions.Count == 0 && Model.PushDefinitions.Count == 0) { } @foreach (var templateKey in Model.Definitions.Select(d => d.Key).Concat(Model.PushDefinitions.Select(d => d.Key)).Distinct(StringComparer.Ordinal).OrderBy(k => k, StringComparer.Ordinal)) { var email = Model.Definitions.SingleOrDefault(d => d.Key == templateKey); var push = Model.PushDefinitions.SingleOrDefault(d => d.Key == templateKey); var editUrl = email is null ? Url.Action("Edit", "AdminPushTemplates", new { serviceId, key = templateKey, keyFilter }) : Url.Action("Edit", "AdminTemplates", new { serviceId, definitionId = email.Id, keyFilter }); var presentCodes = email?.Languages.Select(l => l.LanguageCode).ToHashSet(StringComparer.Ordinal) ?? []; }
Clear
Email Push Action
@if (!ViewData.ModelState.IsValid) {

Templates are unavailable. Review the error and try again.

} else if (!string.IsNullOrWhiteSpace(keyFilter)) {

No templates match this key.

Clear filter } else {

No templates for this service yet.

Create First Template }
@templateKey @if (email is null) { Not configured } else if (Model.Service.Languages.Count == 0) { No configured languages } else {
    @foreach (var language in Model.Service.Languages) { var present = presentCodes.Contains(language.Code);
  • @language.Code:@(present ? "Present" : "Missing")
  • }
}
@if (push is null) { Not configured } else if (Model.Service.Languages.Count == 0) { No configured languages } else { var pushCodes = push.Languages.Select(l => l.LanguageCode).ToHashSet(StringComparer.Ordinal);
    @foreach (var language in Model.Service.Languages) { var present = pushCodes.Contains(language.Code);
  • @language.Code:@(present ? "Present" : "Missing")
  • }
}