public override TokenReplacementResult ReplaceTokens(TokenReplacementContext context) { var result = new TokenReplacementResult { Value = context.Value }; if (string.IsNullOrEmpty(result.Value)) { return(result); } foreach (var tokenInfo in TokenProcessInfos) { if (!string.IsNullOrEmpty(result.Value)) { result.Value = tokenInfo.RegEx.Replace(result.Value, ResolveToken(context, context.Context, tokenInfo.Name)); result.Value = result.Value.Replace(@"//", @"/"); result.Value = result.Value.Replace(@"\\", @"\"); } } if (OnTokenReplaced != null) { OnTokenReplaced(this, new TokenReplacementResultEventArgs { Result = result }); } return(result); }
public override TokenReplacementResult ReplaceTokens(TokenReplacementContext context) { var result = new TokenReplacementResult { Value = context.Value }; if (string.IsNullOrEmpty(result.Value)) { return(result); } foreach (var tokenInfo in TokenProcessInfos) { if (!string.IsNullOrEmpty(result.Value)) { result.Value = tokenInfo.RegEx.Replace(result.Value, ResolveToken(context.Context, tokenInfo.Name)); } } return(result); }
public override TokenReplacementResult ReplaceTokens(TokenReplacementContext context) { var result = new TokenReplacementResult { Value = context.Value }; if (string.IsNullOrEmpty(result.Value)) { return(result); } foreach (var tokenInfo in TokenProcessInfos) { if (!string.IsNullOrEmpty(result.Value)) { var replacedValue = tokenInfo.RegEx.Replace(result.Value, ResolveToken(context, context.Context, tokenInfo.Name)); if (!string.IsNullOrEmpty(replacedValue)) { // everything to '/' replacedValue = replacedValue.Replace(@"\", @"/"); // replace doubles after '://' var urlParts = replacedValue.Split(new string[] { "://" }, StringSplitOptions.RemoveEmptyEntries); // return non 'protocol://' values if (urlParts.Count() == 1) { result.Value = urlParts[0].Replace(@"//", @"/"); } else { var resultValues = new List <string>(); resultValues.Add(urlParts[0]); foreach (var value in urlParts.Skip(1)) { resultValues.Add(value.Replace(@"//", @"/")); } result.Value = string.Join("://", resultValues.ToArray()); } } else { result.Value = replacedValue; } } } // remove ending slash, SharePoint removes it everywhere if (result.Value.Length > 1) { result.Value = result.Value.TrimEnd('/'); } if (OnTokenReplaced != null) { OnTokenReplaced(this, new TokenReplacementResultEventArgs { Result = result }); } return(result); }