How to: Swap the Order of Names

Attribute values that are staged in the connector space might need data transformations before they are flowed into the metaverse. Rules extensions can do these data transformations during import attribute flow. For example, business rules might require that the displayName attribute be stored in the metaverse as the combination of the first and last name of the user. However, the connected data source might provide the data in this attribute with the last name before the first name. To swap these values, you can use a rules extension.

The following example shows how to swap the order of the names.

Public Sub MapAttributesForImport(ByVal FlowRuleName As String, ByVal csentry As CSEntry, ByVal mventry As MVEntry) Implements IMASynchronization.MapAttributesForImport
    Select Case FlowRuleName
        Case "displayName"
            Try
                mventry("fileAs").Value = SwapNames(csentry("displayName").StringValue)
            Catch e As AttributeNotPresentException
                Console.WriteLine(e.ToString())
            Catch e As AttributeNotDefinedAsSourceException
                Console.WriteLine(e.ToString())
            End Try
    End Select
End Sub

Function SwapNames(ByVal Input As String) As String
    Try
        Dim Elements() As String
        Dim Delimiters() As Char

        Delimiters = ",".ToCharArray
        Elements = Input.Split(Delimiters)

        ' Verify that the string contains one comma. Any more or any less and 
        ' this function will just return the original string.
        If Elements.Length <> 2 Then
            SwapNames = Input
            Exit Function
        End If

        Dim Output As String

        ' Get the first string after trimming off any whitespace.
        Output = Elements(1).Trim()

        ' Add the space and second string after trimming off any whitespace.
        Output += " " + Elements(0).Trim()

        SwapNames = Output

    Catch ex As Exception
        ' If anything goes wrong, just return the original string.
        SwapNames = Input
    End Try
End Function
void IMASynchronization.MapAttributesForImport( string FlowRuleName, CSEntry csentry, MVEntry mventry)
{
    switch(FlowRuleName)
    {
        case "displayName":
        {
            try
            {
                mventry["fileAs"].Value = SwapNames(csentry["displayName"].StringValue);
            }
            catch ( AttributeNotPresentException e)
            {
                Console.WriteLine(e.ToString());
            }
            catch ( AttributeNotDefinedAsSourceException e)
            {
                Console.WriteLine(e.ToString());
            }
            break;
        }
    }
}
public static string SwapNames(string Input)
{
    try
    {
        string[] Elements;
        char[] Delimiters;

        Delimiters = ",".ToCharArray();
        Elements = Input.Split(Delimiters);
        
        // Verify that the string contains one comma. Any more or any less 
        // and this function will just return the original string.
        if(Elements.Length != 2)
        {
            return Input;
        }    
    
        string Output;

        // Get the first string after trimming off any whitespace.
        Output = Elements[1].Trim();

        // Add the space and second string after trimming off any whitespace.
        Output += " " + Elements[0].Trim();

        return Output;
    }
    catch
    {
        // If anything goes wrong, just return the original string.
        return Input;
    }
}

See Also

Concepts

Transforming Data