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 } }); }
private static string LabelToUrlPart(string label, bool allowDataLoss) { return(allowDataLoss ? UrlFormattersPluginFacade.FormatUrl(label, true) : UrlUtils.EncodeUrlInvalidCharacters(label)); }