Пример #1
0
        public static MetadataEnum[] GetMetadataEnums(this IMetadataConfiguration metadata)
        {
            var result = new List<MetadataEnum>();
            foreach (var e in metadata.Enums)
            {
                var value = new MetadataEnum();
                value.Comment = e.Comment;
                value.FullName = e.FullName();
                value.Name = e.Name;
                value.Synonym = e.Synonym;

                var enumItems = new List<MetadataEnumItem>();

                var i = 0;
                foreach (var ei in e.EnumValues)
                {
                    var enumItemValue = new MetadataEnumItem();
                    enumItemValue.Id = i++;
                    enumItemValue.Comment = ei.Comment;
                    enumItemValue.FullName = ei.FullName();
                    enumItemValue.Name = ei.Name;
                    enumItemValue.Synonym = ei.Synonym;
                    enumItems.Add(enumItemValue);
                }
                value.Items = enumItems.ToArray();

                result.Add(value);
            }
            return result.ToArray();
        }
Пример #2
0
        public static MetadataEnum GetEnumMetadata(this IMetadataConfiguration metadata, string enumName)
        {
            int hash = metadata.GlobalContext.GetHashCode();
            Dictionary <string, MetadataEnum> enums;

            // chec group
            if (!enumCashe.TryGetValue(hash, out enums))
            {
                enums = new Dictionary <string, MetadataEnum>();
                enumCashe.Add(hash, enums);
            }
            // check value
            MetadataEnum result;

            if (!enums.TryGetValue(enumName, out result))
            {
                return(result);
            }
            var e = metadata.Enums[enumName];

            result          = new MetadataEnum();
            result.Comment  = e.Comment;
            result.FullName = e.FullName();
            result.Name     = e.Name;
            result.Synonym  = e.Synonym;

            var enumItems = new List <MetadataEnumItem>();

            var i = 0;

            foreach (var ei in e.EnumValues)
            {
                var enumItemValue = new MetadataEnumItem();
                enumItemValue.Id       = i++;
                enumItemValue.Comment  = ei.Comment;
                enumItemValue.FullName = ei.FullName();
                enumItemValue.Name     = ei.Name;
                enumItemValue.Synonym  = ei.Synonym;
                enumItems.Add(enumItemValue);
            }
            result.Items = enumItems.ToArray();
            enums.Add(enumName, result);
            return(result);
        }