以编程方式创建的Sitecore项目没有版本,没有内容; "当前项目没有英文版本" C#

时间:2017-03-03 17:33:49

标签: c# sitecore version publish

我正在创建一个以编程方式在Sitecore中创建项目的导入工具。该项目已创建,但当我查看该项目时,它表示“当前项目没有"英语:英语。”#34;'我输入using (new LanguageSwitcher("en-gb"))但是没有解决它。我的代码的工作方式是它查找项目应该放入的文件夹(所有文件夹都基于年份,例如2016年,2017年);如果文件夹不存在,我在创建项目之前创建该文件夹。这是我的代码:

protected void PublishRelease(PressReleaseItem release)
{
    using (new LanguageSwitcher("en-gb"))
    {
        var year = release.ReleaseDate.Year;
        // create year folder if it doesn't exist
        var folderQuery = String.Format(PressReleaseYearFolderFastQuery, year);
        Item folder = _db.SelectItems(folderQuery).ToList().FirstOrDefault();

        if (folder == null)
        {
            var templateId = _templateFactory.GetTemplateId<IPressReleaseYearFolderItem>();
            TemplateID pressReleaseFolderTemplateId = new TemplateID(templateId.ToID());
            folder = _pressReleaseFolder.Add(year.ToString(), pressReleaseFolderTemplateId);
        }

        if (folder == null) return;
        // add item to folder

        var itemTemplateId = _templateFactory.GetTemplateId<IPRNewswirePressReleaseItem>();
        TemplateID pressReleaseTemplateId = new TemplateID(itemTemplateId.ToID());

        item = folder.Add(SanitizeHeadline(release.Headline), pressReleaseTemplateId);

        if (item == null) return;
        item.Fields.ReadAll();
        item.Editing.BeginEdit();

        try
        {
            item.Fields["External ID"].Value = release.ExternalId;
            item.Fields["Active"].Value = release.Active.ToString();
            item.Fields["Image Url"].Value = release.ImageUrl;
            item.Fields["PDF Url"].Value = release.PdfUrl;
            item.Fields["Description"].Value = release.SubHeadline;
            item.Fields["Headline"].Value = release.Headline;
            item.Fields["Date"].Value = release.ReleaseDate.ToString("d");
            item.Fields["Longtext"].Value = release.Body;
            item.Fields["Category"].Value = SetReleaseCategories(release.Category);

        }
        catch (Exception ex)
        {
            item.Editing.EndEdit();
        }

        item.Editing.EndEdit();
    }
} 

当我在Sitecore中查看新项目时,它说它没有英文版本;当我点击添加新版本时,所有字段都是空白的。

1 个答案:

答案 0 :(得分:1)

我原本希望您上面的代码默认使用en-GB语言创建新版本。像理查德提到的那样,验证你的英语和英语是否正确。被设置为&#39; en&#39;或者&#39; en-gb&#39;。如果您的默认英语有不同的代码,则可能需要更新语言切换器。

或者,您是否尝试过类似下面的操作强制版本?

get_thing_shadow

这至少可以让你测试版本创建是否正常工作,不过你不应该为新项目创建它。

相关问题