public string Process(string input, Conventions conventions)
{
var styles = process.Parse(input);
var styleBuilder = new StringBuilder();
foreach (var style in styles)
{
var setterBuilder = new StringBuilder();
foreach (var mapper in mappers)
{
if (!mapper.IsMatch(style))
continue;
var result = mapper.Process(style);
setterBuilder.AppendLine();
setterBuilder.AppendFormat(setterTemplate, result.Item1, result.Item2);
}
setterBuilder.AppendLine();
var type = conventions.GetTargetType(style.Name);
var targetType = "";
if (!string.IsNullOrWhiteSpace(type))
{
targetType = string.Format(" TargetType=\"{0}\"", type);
}
styleBuilder.AppendFormat(styleTemplate, style.Name, setterBuilder, targetType);
styleBuilder.AppendLine();
}
return styleBuilder.ToString();
}