protected virtual string GetMethodName(bool isRemote) { var sb = new StringBuilder(); bool isFirst = true; if (IsType(SearchCriteriaType.ForeignKey)) { foreach (AssociationProperty associationProperty in ForeignProperties) { if (isFirst) { isFirst = false; sb.AppendFormat(Configuration.Instance.SearchCriteriaProperty.Prefix, NamingConventions.CleanEscapeSystemType(Association.ForeignEntity.Name)); } else { sb.Append(Configuration.Instance.SearchCriteriaProperty.Delimeter); } if (isRemote) { sb.Append(NamingConventions.CleanEscapeSystemType(associationProperty.ForeignProperty.Name)); } else { sb.Append(NamingConventions.CleanEscapeSystemType(associationProperty.Property.Name)); } } sb.Append(Configuration.Instance.SearchCriteriaProperty.Suffix); } else if (IsType(SearchCriteriaType.PrimaryKey) && !String.IsNullOrEmpty(Configuration.Instance.SearchCriteriaProperty.MethodKeySuffix)) { sb.Append(Configuration.Instance.SearchCriteriaProperty.Prefix); sb.Append(Configuration.Instance.SearchCriteriaProperty.MethodKeySuffix); } else // Handle anything not a ForeignKey. { foreach (IProperty member in Properties) { if (isFirst) { isFirst = false; sb.AppendFormat(Configuration.Instance.SearchCriteriaProperty.Prefix, NamingConventions.CleanEscapeSystemType(member.Entity.Name)); } else { sb.Append(Configuration.Instance.SearchCriteriaProperty.Delimeter); } sb.Append(member.Name); } sb.Append(Configuration.Instance.SearchCriteriaProperty.Suffix); } return(sb.ToString()); }