/// <summary>
 /// Adds default mappings to the <paramref name="converter"/> for <see cref="Int16Key"/>, <see cref="Int32Key"/>, <see cref="Int64Key"/>, <see cref="StringKey"/> and <see cref="GuidKey"/>.
 /// </summary>
 /// <param name="converter">A key-parameters converter definitions.</param>
 /// <returns><paramref name="definitions"/>.</returns>
 public static KeyToParametersConverter.MappingCollection AddDefaultMapping(this KeyToParametersConverter.MappingCollection definitions)
 {
     Ensure.NotNull(definitions, "definitions");
     return(definitions
            .AddInt16KeyToParameters()
            .AddInt32KeyToParameters()
            .AddInt64KeyToParameters()
            .AddStringKeyToParameters()
            .AddGuidKeyToParameters()
            .AddParametersToInt16Key()
            .AddParametersToInt32Key()
            .AddParametersToInt64Key()
            .AddParametersToStringKey()
            .AddParametersToGuidKey());
 }
 /// <summary>
 /// Adds mapping from <see cref="StringKey"/> to parameters.
 /// </summary>
 /// <param name="converter">A key-parameters converter definitions.</param>
 /// <returns><paramref name="definitions"/>.</returns>
 public static KeyToParametersConverter.MappingCollection AddStringKeyToParameters(this KeyToParametersConverter.MappingCollection definitions)
 {
     Ensure.NotNull(definitions, "definitions");
     return(definitions.AddKeyToParameters <StringKey>((values, key) => values.Add("Identifier", key.Identifier).Add("Type", key.Type)));
 }
 /// <summary>
 /// Adds mapping from <see cref="Int64Key"/> to parameters.
 /// </summary>
 /// <param name="converter">A key-parameters converter definitions.</param>
 /// <returns><paramref name="definitions"/>.</returns>
 public static KeyToParametersConverter.MappingCollection AddInt64KeyToParameters(this KeyToParametersConverter.MappingCollection definitions)
 {
     Ensure.NotNull(definitions, "definitions");
     return(definitions.AddKeyToParameters <Int64Key>((values, key) => values.Add("ID", key.ID).Add("Type", key.Type)));
 }
 /// <summary>
 /// Adds mapping from parameters to <see cref="GuidKey"/>.
 /// </summary>
 /// <param name="converter">A key-parameters converter definitions.</param>
 /// <returns><paramref name="definitions"/>.</returns>
 public static KeyToParametersConverter.MappingCollection AddParametersToGuidKey(this KeyToParametersConverter.MappingCollection definitions)
 {
     Ensure.NotNull(definitions, "definitions");
     return(definitions.AddParametersToKey <GuidKey>(TryGetGuidKey));
 }
 /// <summary>
 /// Adds mapping from <see cref="GuidKey"/> to parameters.
 /// </summary>
 /// <param name="converter">A key-parameters converter definitions.</param>
 /// <returns><paramref name="definitions"/>.</returns>
 public static KeyToParametersConverter.MappingCollection AddGuidKeyToParameters(this KeyToParametersConverter.MappingCollection definitions)
 {
     Ensure.NotNull(definitions, "definitions");
     return(definitions.AddKeyToParameters <GuidKey>((values, key) => values.Add("Guid", key.Guid.ToString()).Add("Type", key.Type)));
 }