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(); }
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); }