public RelativeRoute GetRoute(TValue fieldValue, bool searchSignificant)
        {
            if (!typeof(TValue).IsValueType && fieldValue == null)
            {
                return(null);
            }

            string stringValue;

            if (IsGuidField)
            {
                stringValue = UrlUtils.CompressGuid((fieldValue as Guid?).Value);
            }
            else if (IsStringField)
            {
                stringValue = searchSignificant ? UrlUtils.EncodeUrlInvalidCharacters(fieldValue as string)
                                                : StringToUrlPart(fieldValue as string);
            }
            else
            {
                stringValue = ValueTypeConverter.Convert <string>(fieldValue);
            }


            return(new RelativeRoute {
                PathSegments = new[] { stringValue }
            });
        }
Example #2
0
 private static string LabelToUrlPart(string label, bool allowDataLoss)
 {
     return(allowDataLoss
         ? UrlFormattersPluginFacade.FormatUrl(label, true)
         : UrlUtils.EncodeUrlInvalidCharacters(label));
 }