/// <summary>Renders member/property that contains parent entity.</summary> /// <param name="fk">Foreign key meta data.</param> /// <param name="memberType">Class item type.</param> /// <param name="classItemTemplate">Naming convention template.</param> /// <param name="prefixesToRemove">Table name prefixes to remove from item name.</param> /// <param name="tableSuffix">Sufix to append.</param> /// <returns>Class member mapped to foreign key.</returns> public string RenderParentMember(ForeignKey fk, NetClassItem memberType, IClassItemNamingConvention classItemTemplate, string[] prefixesToRemove, string tableSuffix) { // Used by template based generator. StringBuilder memberName = new StringBuilder(); ApplyPrefix(memberName); RenderTableNameWithoutSpecifiedPrefixes(fk, classItemTemplate, memberName, prefixesToRemove); ApplySuffixes(fk, classItemTemplate, memberName, tableSuffix, this.delimiter, this.appendChildFields); if (memberName.Length < 1) throw new Exception("Specified options yielded with an empty parent member name."); ApplyNetClassItem(memberType, memberName); return memberName.ToString(); }
private static void ApplyNetClassItem(NetClassItem memberType, StringBuilder memberName) { switch (memberType) { case NetClassItem.LocalVariable: memberName[0] = char.ToLower(memberName[0]); break; case NetClassItem.PrivateMember: memberName[0] = char.ToLower(memberName[0]); //memberName.Insert(0, '_'); break; case NetClassItem.ProtectedMember: memberName[0] = char.ToUpper(memberName[0]); memberName.Insert(0, '_'); break; case NetClassItem.PublicProperty: memberName[0] = char.ToUpper(memberName[0]); break; default: throw new Exception("Unsupported NetClassItem: " + memberType.ToString()); } }