現在取り組んでいるリファクタリングの演習では、選択したWebサイトのページテンプレートを変更する必要があります。ほとんどのページはローカライズされ、以下のコードによってページテンプレートが更新されますが、いくつかの場合、次のエラーが発生します。
「名前、ファイル名は、構造グループ内のページとブループリントコンテキストのタイプのアイテムに対して一意である必要があります。競合のソースまたはソースtcm:121:3456-64」。
処理中の現在のページとエラーに記載されているページの両方を確認しましたが、どちらも一意の名前とファイル名を持っています。問題を引き起こしている可能性のあるアイデアはありますか?
PS質問に投稿された優れた提案で、以前のエラーを解決することができました。今回も同様の反応を期待しています。
try
{
pData = client.Read(page.Attribute("ID").Value, null) as PageData;
//Localize Page
if (!(bool)pData.BluePrintInfo.IsLocalized)
{
client.Localize(pData.Id, new ReadOptions());
if (dTemplateIDs.ContainsKey(pData.PageTemplate.IdRef.ToString()))
{
pData.IsPageTemplateInherited = false;
pData.PageTemplate.IdRef = dTemplateIDs[pData.PageTemplate.IdRef];
client.Update(pData, new ReadOptions());
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error Inner " + ex.Message);
}