如何在 AdminUI 之外的内容选取器中设置项目?
How can I set an item in Content Picker outside of AdminUI?
我有 ContentTypeA
和 ContentPickerA
字段。我还有 ContentTypeB
和其他字段等。这些是在 Migrations.cs
文件中创建的,该文件目前是我模块中唯一的代码(除了下面的工作流程 Activity 之外)。所以,没有零件、驱动程序等
我正在创建一个 Worfklow,在用户注册后,将从 ContentTypeA
中创建 ContentItem1
,并从 ContentTypeB
中创建 ContentItem2
。
我想自动 link 内容项,这样我就可以用 ContentItem2
填写 ContentPickerA
。重点是避免进入 AdminUI 手动 link 这些项目。
我搜索了很多,但未能找到任何具体示例,更不用说任何让我走上正轨的东西了。
非常感谢任何帮助。
在 Activities class 的 Execute
中,我能够使用以下代码实现此功能:
public override IEnumerable<LocalizedString> Execute(WorkflowContext workflowContext, ActivityContext activityContext)
{
LocalizedString outcome = null;
try
{
//VARIABLES: DATA
var mainTitle = "Test Content Title From Workflow Activity";
var matterTitle = "Matter Type Title From Workflow Activity";
//VARIABLES: NEW CONTENT ITEMS
var spacesMain = _contentManager.New("TestContentType");
var spacesMatter = _contentManager.New("MatterType");
//BIND DATA
spacesMain.As<TitlePart>().Title = mainTitle;
spacesMatter.As<TitlePart>().Title = matterTitle;
//CREATE DRAFT CONTENT ITEMS
_contentManager.Create(spacesMain, VersionOptions.Published);
_contentManager.Create(spacesMatter, VersionOptions.Published);
//SET CONTENT PICKER
var contentPickerTest1 = ((dynamic)spacesMain).TestContentType.ContentPickerTest1;
contentPickerTest1.Ids = new[] { spacesMatter.Id };
outcome = T("Done");
}
catch (Exception exc)
{
workflowContext.SetState("Exception", exc);
outcome = T("Error");
}
yield return outcome;
}
希望这对某人有所帮助,因为作为一名非程序员,我很高兴终于看到 AdminUI 中的内容项将 ContentPickerField 设置为我创建的其他内容项。
我有 ContentTypeA
和 ContentPickerA
字段。我还有 ContentTypeB
和其他字段等。这些是在 Migrations.cs
文件中创建的,该文件目前是我模块中唯一的代码(除了下面的工作流程 Activity 之外)。所以,没有零件、驱动程序等
我正在创建一个 Worfklow,在用户注册后,将从 ContentTypeA
中创建 ContentItem1
,并从 ContentTypeB
中创建 ContentItem2
。
我想自动 link 内容项,这样我就可以用 ContentItem2
填写 ContentPickerA
。重点是避免进入 AdminUI 手动 link 这些项目。
我搜索了很多,但未能找到任何具体示例,更不用说任何让我走上正轨的东西了。
非常感谢任何帮助。
在 Activities class 的 Execute
中,我能够使用以下代码实现此功能:
public override IEnumerable<LocalizedString> Execute(WorkflowContext workflowContext, ActivityContext activityContext)
{
LocalizedString outcome = null;
try
{
//VARIABLES: DATA
var mainTitle = "Test Content Title From Workflow Activity";
var matterTitle = "Matter Type Title From Workflow Activity";
//VARIABLES: NEW CONTENT ITEMS
var spacesMain = _contentManager.New("TestContentType");
var spacesMatter = _contentManager.New("MatterType");
//BIND DATA
spacesMain.As<TitlePart>().Title = mainTitle;
spacesMatter.As<TitlePart>().Title = matterTitle;
//CREATE DRAFT CONTENT ITEMS
_contentManager.Create(spacesMain, VersionOptions.Published);
_contentManager.Create(spacesMatter, VersionOptions.Published);
//SET CONTENT PICKER
var contentPickerTest1 = ((dynamic)spacesMain).TestContentType.ContentPickerTest1;
contentPickerTest1.Ids = new[] { spacesMatter.Id };
outcome = T("Done");
}
catch (Exception exc)
{
workflowContext.SetState("Exception", exc);
outcome = T("Error");
}
yield return outcome;
}
希望这对某人有所帮助,因为作为一名非程序员,我很高兴终于看到 AdminUI 中的内容项将 ContentPickerField 设置为我创建的其他内容项。