Пример работы с перечислениями в сценариях
Примечание
Перед началом работы со сценариями рекомендуется ознакомиться со стандартами написания программного кода на языке C#.
В примере рассмотрим, как найти значение перечисления по наименованию и в контекстную переменную записать следующее по порядку значение. Контекстная переменная имеет тип Перечисление.
Для работы необходимо подключить пространства имен:
1 2 | using EleWise.ELMA.ConfigurationModel; using EleWise.ELMA.Model.Metadata; |
Текст сценария:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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.