public string ReplaceTokens(string templateText, IDictionary<string, string> tokenValues)
{
var output = RegExToken.Replace(templateText, (match) =>
{
var tokenName = match.Groups["TokenName"].Value.ToLower();
try
{
KeyValuePair<string, string> property =
tokenValues.First(x => x.Key.ToLower() == tokenName);
return property.Value;
}
catch (Exception)
{
throw new ArgumentException("No value supplied for token: " + tokenName);
}
});
return output;
}