internal IEnumerable<ToRoute> ConditionRoutes()
{
yield return "ItemDefinitionGroup".MapTo<string>(condition => LookupItemDefinitionGroup(condition), ItemDefinitionGroupChildren);
yield return "CopyToOutput".MapTo<string>(condition => CopyToOutput(condition));
yield return "EmbedInOutput".MapTo<string>(condition => EmbedInOutput(condition));
yield return "BuildTimePath".MapTo<string>(condition => BuildTimePath(condition));
yield return "ImportGroup".MapTo<string>(condition => LookupImportGroup(condition), ImportGroupChildren);
yield return "ItemGroup".MapTo<string>(condition => LookupItemGroup(condition), ItemGroupChildren);
yield return "PropertyGroup".MapTo<string>(condition => LookupPropertyGroup(condition), PropertyGroupChildren);
yield return "Target".MapTo<string, string, ProjectTargetElement>(condition => new DelegateDictionary<string, ProjectTargetElement>(
() => Targets.Keys,
key => LookupTarget(key, condition),
(name, value) => LookupTarget(name, ""),
key => Targets.Remove(key)
), new[] { "$$INDEXED".MapIndexedChildrenTo<ProjectTargetElement>((target, child) => target.GetTargetItem(child)) });
yield return "".MapTo<string>((condition,view) => {
return new Accessor(() => {
return LookupProperty( LookupPropertyGroup(condition), view.MemberName).Value;
}, v => {
if (v != null || v != string.Empty) {
LookupProperty(LookupPropertyGroup(condition), view.MemberName).Value = v.ToString();
}
});
}, new[] { "$$INDEXED".MapIndexedChildrenTo<string>((targetName, child) => LookupTarget(child.ParentView.ParentView.MemberName).GetTargetItem(child)) });
}