Пример работы с перечислениями в сценариях
Примечание
Перед началом работы со сценариями рекомендуется ознакомиться со стандартами написания программного кода на языке C#.
В примере рассмотрим, как найти значение перечисления по наименованию и в контекстную переменную записать следующее по порядку значение. Контекстная переменная имеет тип Перечисление.
Для работы необходимо подключить пространства имен:
using EleWise.ELMA.ConfigurationModel; using EleWise.ELMA.Model.Metadata;
Текст сценария:
var enumMetadata = (EnumMetadata)MetadataLoader.LoadMetadata(typeof(Name_enumeration)); //загружаем в метаданные var enumValue = enumMetadata.Values.FirstOrDefault(v => v.DisplayName == context.Stroka);// ищем перечисление, наименование которого совпадает со значением введенным в строке if (enumValue != null) { var status = (Name_enumeration)enumValue.EnumValue;// получаем перечисление context.Nomer=status.GetHashCode();//получаем значение (номер) перечисления if(status.GetHashCode()!=10)//перечисление состоит из 10 элементов, если выбран 10 элемент то возвращаемся к первому { context.Name_enumeration=status+1; //берем следующее перечисление } else { context.Name_enumeration=Name_enumeration.Name1; } }
где
- Name_enumeration – название созданного нумератора;
- context.Stroka – переменная типа Строка;
- context.Nomer – переменная типа Целое число;
- context.Name_enumeration – переменная типа перечисление Name_enumeration.