/// <summary>
 ///     Create Nodeprep profile
 /// </summary>
 /// <returns>Nodeprep process</returns>
 public static IPreparationProcess Create()
 {
     return(PreparationProcess.Build()
            .WithMappingStep(MappingTable.Build()
                             .WithMappingTable(Mapping.B_1)
                             .WithMappingTable(Mapping.B_2)
                             .Compile())
            .WithNormalizationStep()
            .WithProhibitedValueStep(ValueRangeTable.Create(
                                         Prohibited.C_1_1,
                                         Prohibited.C_1_2,
                                         Prohibited.C_2_1,
                                         Prohibited.C_2_2,
                                         Prohibited.C_3,
                                         Prohibited.C_4,
                                         Prohibited.C_5,
                                         Prohibited.C_6,
                                         Prohibited.C_7,
                                         Prohibited.C_8,
                                         Prohibited.C_9,
                                         NodeprepProhibited))
            .WithBidirectionalStep()
            .WithProhibitedValueStep(ValueRangeTable.Create(
                                         Unassigned.A_1))
            .Compile());
 }
 private static IPreparationProcess Create()
 {
     return(PreparationProcess.Build()
            .WithMappingStep(MappingTable.Build()
                             .WithValueRangeTable(Prohibited.ASCIISpaceCharacters, ' ')
                             .WithMappingTable(Mapping.MappedToNothing)
                             .Compile())
            .WithNormalizationStep()
            .WithProhibitedValueStep(ValueRangeTable.Create(
                                         Prohibited.NonASCIISpaceCharacters,
                                         Prohibited.ASCIIControlCharacters,
                                         Prohibited.NonASCIIControlCharacters,
                                         Prohibited.PrivateUseCharacters,
                                         Prohibited.NonCharacterCodePoints,
                                         Prohibited.SurrogateCodePoints,
                                         Prohibited.InappropriateForPlainText,
                                         Prohibited.InappropriateForCanonicalRepresentation,
                                         Prohibited.TaggingCharacters))
            .WithBidirectionalStep()
            .WithProhibitedValueStep(ValueRangeTable.Create(
                                         Unassigned.UnassignedCodePoints))
            .Compile());
 }