private void ProcessEnumeration(IEnumeration enumeration) { cw.WriteLine("[DataContract]"); cw.WriteLine("public enum {0}", enumeration.Name); cw.BeginScope(); for (int i = 0; i < enumeration.Items.Count; i++) { IEnumerationItem item = enumeration.Items[i]; cw.WriteLine("[EnumMember] {0} = {1}{2}", item.Name, item.Value, i + 1 == enumeration.Items.Count ? "" : ","); } cw.EndScope(); if (this.genie.Lamp.Config.Patterns.Localization != null) { cw.WriteLine("public static class {0}L10n", enumeration.Name); cw.BeginScope(); cw.BeginFunction("public static string GetName({0} value)", enumeration.Name); cw.WriteLine("switch(value)"); cw.BeginScope(); for (int i = 0; i < enumeration.Items.Count; i++) { IEnumerationItem item = enumeration.Items[i]; string caption = item.HasDoc ? item.Doc.GetLabel(new System.Globalization.CultureInfo("en")) : item.Name; cw.WriteLine("case {0}.{1}: return {2}.L.Catalog.GetString(\"{3}\");", enumeration.Name, item.Name, ServicesLayerConfig.ServicesInterfacesNamespace, String.IsNullOrWhiteSpace(caption) ? item.Name : caption); } cw.EndScope(); cw.WriteLine("throw new Exception(String.Format(\"Unsupported value: {{0}}. Enum: {0}\", value));", enumeration.Name); cw.EndFunction(); cw.WriteLine(); string enumItemClassName = String.Format("{0}Item", enumeration.Name); cw.BeginClass(AccessLevel.Public, false, enumItemClassName, null); cw.WriteLine("public {0} Id {{ get; set; }}", enumeration.Name); cw.WriteLine("public string Name { get; set; }"); cw.EndClass(); cw.WriteLine(); cw.BeginFunction("public static IList<{0}> GetList()", enumItemClassName); cw.WriteLine("List<{0}> list = new List<{0}>();", enumItemClassName); cw.WriteLine("{0}[] items = ({0}[])Enum.GetValues(typeof({0}));", enumeration.Name); cw.WriteLine("for(int i = 0; i < items.Length; i++ )"); cw.BeginScope(); cw.WriteLine("{0} item = new {0}() {{ Id = items[i], Name = GetName(items[i]) }};", enumItemClassName); cw.WriteLine("list.Add(item);"); cw.EndScope(); cw.WriteLine("return list;"); cw.EndFunction(); cw.EndScope(); cw.WriteLine(); } }
public static string FormatEnumeration(IEnumerationItem item) { IEnumeration _enumeration = item.Enumeration; StringBuilder stringBuilder = new StringBuilder(); if (TemplateClass.SystemClasses.Any(_systemClass => _systemClass.Name == _enumeration.Name)) { stringBuilder.Append(_enumeration.Namespace.Name).Append("."); } stringBuilder.Append(_enumeration.Name).Append(".").Append(item.Name); return(stringBuilder.ToString()); }
public void Add(IEnumerationItem item) { this.items.Add(item); item.Enumeration = this; }