Umbraco Forms: скрыть условные поля из электронной почты
Внутри моих электронных писем, сгенерированных Umbraco Forms, я хотел бы скрыть поля, которые не отображаются из-за активных условий.
Например: я хочу отображать поле 2 только в том случае, если условие выполняется, а в противном случае скрывать его в своем электронном письме. После приступа кодирования я нашел метод.IsValid(form, string) внутри Umbraco.Forms.Core и начал его настраивать.
var dictionary = new Dictionary<Guid, string>();
dictionary.Add(field.Id, string.Join(",", field.Values ?? new List<object>()));
var showField = field.Condition.IsVisible(form, dictionary);
И используя это так:
parsedRecordFields = record
.RecordFields
.Values
?.Where(n => !n.Field.HasCondition() || FieldIsInsideSelectedCondition(e.Form, n.Field))
Но это работает не так, как ожидалось; все возвращаемые значения (showField) ложны, даже если они должны быть истинными.
FieldConditionEvaluation.IsVisible ожидает форму и словарь (GUID, строка) в качестве параметра и может быть найден внутри пространства имен Umbraco.Forms.Core.