private void GenerateConfigurationPropertyInitializers(ProjectTargetElement initTarget)
{
var pivots = Pivots;
ProjectPropertyGroupElement pg = null;
foreach(var pivot in pivots.Values) {
// dynamic cfg = configurationsView.GetProperty(pivot);
IEnumerable<string> choices = pivot.Choices.Keys;
if(!pivot.IsBuiltIn) {
// add init steps for this.
var finalPropName = "{0}-{1}".format(pivot.Name, SafeName);
foreach(var choice in choices.Distinct()) {
var choicePropName = "{0}-{1}".format(pivot.Name, choice);
var tsk = initTarget.AddTask(SafeName + "_Contains");
tsk.SetParameter("Text", choicePropName);
tsk.SetParameter("Library", SafeName);
tsk.SetParameter("Value", choice);
tsk.Condition = @"'$({0})'==''".format(finalPropName);
tsk.AddOutputProperty("Result", finalPropName);
}
pg = pg ?? Xml.AddPropertyGroup();
pg.Label = "Default initializers for properties";
pg.AddProperty(finalPropName, choices.FirstOrDefault()).Condition = @"'$({0})' == ''".format(finalPropName);
}
}
}