The BaseSeoUrlProvider type exposes the following members.

Constructors

  NameDescription
BaseSeoUrlProvider
This default constructor initializes data structures and default values. Sets the PathSeparatorToken to '_' (underscore). Sets the PathKeyValueSeparator to '-' (dash). Instantiates the CommandCollectionSerializer to a new instance of the SeoCommandCollectionSerializer. Instantiates the ParameterMapModifier to a new instance of the EmptyParameterMapModifier.

Methods

  NameDescription
AssertMaxOneCommandOfEachType
Checks that the given CommandInfoCollection contains at most one instance of NavigationCommand, RecordDetailsCommand, AggregateRecordDetailsCommand, DimensionSearchCommand, CompoundDimensionSearchCommand, and MetadataCommand. Throws an exception if multiple commands of the same type have been found.
AssertRequiredMembers
Check that any required members are set to a non-null value, otherwise a InvalidOperationException is thrown. The only required member is CommandCollectionSerializer.
Construct
This method constructs the URL that corresponds to the passed commands and extra parameters. This method concatenates the baseUrl with the formatted string that represents the state, path parameters, and query string parameters.
(Overrides BasicUrlProviderConstruct(String, CommandInfoCollection, NameValueCollection).)
ConstructUrl (Inherited from UrlProvider.)
DecodeUrlParams
Base 36 decode any UrlParam contained within the urlParams. Only the parameters contained within the ParameterEncoders will be base 36 decoded.
Deconstruct
This method updates the passed commands with the state contained in the request URI.
(Overrides BasicUrlProviderDeconstruct(Uri, CommandInfoCollection, NameValueCollection).)
DeconstructUrl (Inherited from UrlProvider.)
EncodeParameters
Base 36 encode any of the ParameterEncoders.
Equals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Finalize
Allows an Object to attempt to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection.
(Inherited from Object.)
GetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
GetPathParamsString
Return a string containing the concatenation of path parameters for the URL. Parameters are ordered based on the order in the SortedDictionary. Path parameters occur before the "?" on a URL.
GetQueryParamsString
Return a string containing the concatenation of query string parameters for the URL. Query string parameters occur after the "?" on a URL.
GetSerializationProvider (Inherited from BasicUrlProvider.)
GetType
Gets the Type of the current instance.
(Inherited from Object.)
MemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
ToString
Returns a String that represents the current Object.
(Inherited from Object.)
ValidateParameterEncoders
Verify that the ParameterEncoders contains only a combination of the N, An, Dn, and Ne parameters.
VerifyValidCommands
Ensure the CommandInfoCollection does not contain any invalid command combinations that the URL Optimization API can not represent. If the CommandInfoCollection contains an invalid command combination, then an InvalidOperationException will be thrown. The command combinations that are not supported are: 1. NavigationCommand and RecordDetailsCommand 2. NavigationCommand and AggregateRecordDetailsCommand 3. RecordDetailsCommand and AggregateRecordDetailsCommand 4. RecordDetailsCommand and DimensionSearchCommand 5. RecordDetailsCommand and CompoundDimensionSearchCommand 6. RecordDetailsCommand and MetadataCommand 7. AggregateRecordDetailsCommand and DimensionSearchCommand 8. AggregateRecordDetailsCommand and CompoundDimensionSearchCommand 9. AggregateRecordDetailsCommand and MetadataCommand

Fields

  NameDescription
Separator
This String is used to separate values in the URL. This separator is not configurable; its value is a single slash ("/"). For example, in the URL:
CopyC#
http://localhost:8080/products/Red-Merlot-Cherry/_/N-8025+4294967278
The '/' in the "/Red-Merlot-Cherry/" is the separator. This character must be a safe URL encoded character because the API does not UrlEncode this character.

Properties

  NameDescription
AggregateRecordDetailsCommandFormatter
The ICommandFormatter to use for creating the formatted keyword string for AggregateRecordDetailsCommand. This formatter is used to render directory-style (path-encoded) keywords for aggregate record detail pages.
CommandCollectionSerializer
The ICommandCollectionSerializer to use to serialize and deserialize the commands. This member must be set to a non-null value. The constructor for BaseSeoUrlProvider instantiates this member.
NavigationCommandCanonicalizer
Specifies the IDimensionValueCollectionCanonicalizer used to sort the navigation parameter value and formatted keyword string before generating a URL string. If nothing is specified, the formatted string and dimension values are not canonicalized.
NavigationCommandFormatter
The ICanonicalizableCommandFormatter to use for creating the formatted keyword string for NavigationCommand. This formatter is used to render directory-style (path-encoded) keywords for navigation and search pages.
ParameterEncoders
The IDictionary<(Of <(TKey, TValue>)>) where TKey is of type String representing the name of the Endeca URL parameters to encode and TValue is of type IEncoder to encode with. By default it is an empty IDictionary<(Of <(TKey, TValue>)>).
CopyC#
http://localhost:8080/products/Red-Merlot/_/N-66x?No=10
In the above example, the '66x' in the 'N-66x' is the base 36 encoded representation of 8025. The following Endeca parameters are allowed to be encoded: N, Ne, An, and Dn. The type of encoder must implement the IEncoder interface. All keys within the IDictionary<(Of <(TKey, TValue>)>) should only be one of the parameters previously mentioned.

Remarks

It's not possible to set this property to null using the public accessor.
ParameterMapModifier
Specifiers the IParameterMapModifier used to modify the parameter map. This parameter is set to the EmptyParameterMapModifier in the BaseSeoUrlProvider constructor.
PathKeyValueSeparator
The delimiter character to use for path parameter key and value. For example, in the URL:
CopyC#
http://localhost:8080/products/Red-Merlot/_/N-8025?No=10
The '-' in the "N-8025" is the PathKeyValueSeparator. This character must be a safe URL encoded character because the API does not UrlEncode this character.
PathParameters
The List<(Of <(T>)>) of type String of Endeca URL parameters to include in the path part of the URL. By default it is an empty List<(Of <(T>)>).
CopyC#
http://localhost:8080/products/Red-Merlot/_/N-8025?No=10
In the above example, the 'N' in the 'N-8025' is a path parameter. Path parameters occur before the '?' in the URL.

Remarks

It's not possible to set this property to null using the public accessor.
PathSeparatorToken
This String is used to escape values which conflict with delimiters and to separate tags from their values. It separates the keyword part of the URL from the path parameter key value pairs. Its default value is a single underscore ("_"). For example, in the URL:
CopyC#
http://localhost:8080/products/Red-Merlot/_/N-8025?No=10
The '_' in the "Red-Merlot/_/N-8025" is the PathSeparatorToken. This character must be a safe URL-encoded character because the API does not UrlEncode this character.
RecordDetailsCommandFormatter
The ICommandFormatter to use for creating the formatted keyword string for RecordDetailsCommand. This formatter is used to render directory-style (path-encoded) keywords for record detail pages.
UrlEncoder
The IUrlEncoder to use to Url encode and decode strings.

See Also