logo

Пример работы с перечислениями в сценариях

Примечание
Перед началом работы со сценариями рекомендуется ознакомиться со стандартами написания программного кода на языке 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.