public void CopyElementsToContentClass(IContentClass targetCC, params string[] elementNames)
{
if (elementNames == null || elementNames.Length == 0)
{
return;
}
var createdElements = new Dictionary<string, IContentClassElement>();
using (new LanguageContext(Project))
{
var assign = new AttributeAssignment();
foreach (var languageVariant in Project.LanguageVariants)
{
ILanguageVariant targetLanguageVariant =
targetCC.Project.LanguageVariants[languageVariant.Abbreviation];
foreach (var curElementName in elementNames)
{
IContentClassElement curTargetContentClassElement;
languageVariant.Select();
var curSourceContentClassElement = Elements[curElementName];
if (createdElements.TryGetValue(curElementName, out curTargetContentClassElement))
{
targetLanguageVariant.Select();
assign.AssignAllRedDotAttributesForLanguage(curSourceContentClassElement,
curTargetContentClassElement,
targetLanguageVariant.Abbreviation);
curTargetContentClassElement.CommitInCurrentLanguage();
}
else
{
targetLanguageVariant.Select();
curTargetContentClassElement = curSourceContentClassElement.CopyToContentClass(targetCC);
createdElements.Add(curElementName, curTargetContentClassElement);
}
}
}
}
}