public static string Replace(this string template, ComponentData data, string contextName, EventData eventData)
        {
            var eventListener      = data.EventListener(contextName, eventData);
            var lowerEventListener = data.GetContextNames().Length > 1
                ? contextName.LowercaseFirst() + data.ComponentName() + GetEventTypeSuffix(eventData).AddListenerSuffix()
                : data.ComponentNameLowercaseFirst() + GetEventTypeSuffix(eventData).AddListenerSuffix();

            return(template
                   .Replace(data, contextName)
                   .Replace("${EventListenerComponent}", eventListener.AddComponentSuffix())
                   .Replace("${Event}", data.Event(contextName, eventData))
                   .Replace("${EventListener}", eventListener)
                   .Replace("${eventListener}", lowerEventListener)
                   .Replace("${EventType}", GetEventTypeSuffix(eventData)));
        }
 public static string Replace(this string template, ComponentData data, string contextName)
 {
     return(template
            .Replace(contextName)
            .Replace("${ComponentType}", data.GetTypeName())
            .Replace("${ComponentName}", data.ComponentName())
            .Replace("${componentName}", data.ComponentNameLowercaseFirst())
            .Replace("${validComponentName}", data.ComponentNameValidLowercaseFirst())
            .Replace("${prefixedComponentName}", data.PrefixedComponentName())
            .Replace("${newMethodParameters}", GetMethodParameters(data.GetMemberData(), true))
            .Replace("${methodParameters}", GetMethodParameters(data.GetMemberData(), false))
            .Replace("${newMethodArgs}", GetMethodArgs(data.GetMemberData(), true))
            .Replace("${methodArgs}", GetMethodArgs(data.GetMemberData(), false))
            .Replace("${Index}", contextName + LOOKUP + "." + data.ComponentName()));
 }