public static IEnumerable <PosName> ConvertFromNewConvention(this IEnumerable <PosName> posNames, PocoData pocoData) { IEnumerable <PocoMember> allMembers = pocoData.GetAllMembers(); List <PocoMember> scopedPocoMembers = pocoData.Members; string prefix = null; foreach (PosName posName in posNames) { if (posName.Name.StartsWith(SplitPrefix, StringComparison.OrdinalIgnoreCase)) { prefix = posName.Name.Substring(SplitPrefix.Length); PocoMember relevantMembers = allMembers.SingleOrDefault(x => string.Equals(PocoColumn.GenerateKey(x.MemberInfoChain), prefix, StringComparison.OrdinalIgnoreCase)); if (relevantMembers != null) { scopedPocoMembers = relevantMembers.PocoMemberChildren; } continue; } PocoMember member = FindMember(scopedPocoMembers, posName.Name); if (member != null && member.PocoColumn != null) { posName.Name = member.PocoColumn.MemberInfoKey; } else { posName.Name = PocoDataBuilder.JoinStrings(prefix, posName.Name); } yield return(posName); } }
public static IEnumerable<PosName> ConvertFromNewConvention(this IEnumerable<PosName> posNames, PocoData pocoData) { var allMembers = pocoData.GetAllMembers(); var scopedPocoMembers = pocoData.Members; string prefix = null; foreach (var posName in posNames) { if (posName.Name.StartsWith(SplitPrefix, StringComparison.OrdinalIgnoreCase)) { prefix = posName.Name.Substring(SplitPrefix.Length); var relevantMembers = allMembers.SingleOrDefault(x => string.Equals(PocoColumn.GenerateKey(x.MemberInfoChain), prefix, StringComparison.OrdinalIgnoreCase)); if (relevantMembers != null) { scopedPocoMembers = relevantMembers.PocoMemberChildren; } continue; } var member = FindMember(scopedPocoMembers, posName.Name); if (member != null && member.PocoColumn != null) { posName.Name = member.PocoColumn.MemberInfoKey; } else { posName.Name = PocoDataBuilder.JoinStrings(prefix, posName.Name); } yield return posName; } }