/// <summary> /// Get_s the replication key search mode. /// </summary> /// <param name="node">The node.</param> /// <returns>Replication key search mode</returns> public static ReplicationKeySearchMode Get_ReplicationKeySearchMode(IReplicationKeyNode node) { var result = ReplicationKeySearchMode.None; if (node is IModelClass) { var modelClass = node as IModelClass; foreach (var member in modelClass.OwnMembers.Where(x => !x.MemberInfo.IsKey && !x.MemberInfo.IsList)) { var attr = member.MemberInfo.FindAttribute <ReplicationKeyAttribute>(); if (attr != null) { if (attr.IsCaseInsensitive && attr.IsSpaceInsensitive) { result = ReplicationKeySearchMode.CaseAndSpaceInsensitive; } else if (attr.IsCaseInsensitive) { result = ReplicationKeySearchMode.CaseInsensitive; } else if (attr.IsSpaceInsensitive) { result = ReplicationKeySearchMode.SpaceInsensitive; } break; } } } return(result); }
/// <summary> /// Get the replication key member. /// </summary> /// <param name="node">The node.</param> /// <returns>Replication key member</returns> public static IModelMember Get_ReplicationKeyMember(IReplicationKeyNode node) { IModelMember result = null; if (node is IModelClass) { var modelClass = node as IModelClass; foreach (var member in modelClass.OwnMembers.Where(x => !x.MemberInfo.IsKey && !x.MemberInfo.IsList)) { if (member.MemberInfo.FindAttribute <ReplicationKeyAttribute>() != null) { result = member; break; } } if (result == null) { string keyMemberName; if (predefinedKeys.TryGetValue(modelClass.Name, out keyMemberName)) { result = modelClass.AllMembers[keyMemberName]; } } } return(result); }