我的ContentTypeA
字段为ContentPickerA
。我还有ContentTypeB
和其他字段等。这些是在Migrations.cs
文件中创建的,该文件当前是我模块中唯一的代码(下面的工作流程活动除外)。所以,没有零件,司机等。
我正在创建一个Worfklow,在用户注册后,将从ContentItem1
创建ContentTypeA
,从ContentItem2
创建ContentTypeB
。
我想自动关联内容项,以便ContentPickerA
填充ContentItem2
。重点是避免必须进入AdminUI来手动链接这些项目。
我已经搜索了很多,并且找不到任何具体的例子,更不用说让我走上正轨的任何事情了。
非常感谢任何帮助。
答案 0 :(得分:0)
在一个Activities类的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设置为我创建的其他内容项。