2013-07-28 162 views
1

我最近被分配到EPiServer项目。然而,我是.Net开发者,我从来没有真正与ES一起工作的乐趣。使用属性填充其他属性

我已经被赋予了与SoundCloud创建软性“集成”的任务。我们的用户希望将URL复制/粘贴到SoundCloud歌曲 - 然后我可以使用他们的API实际获取音频的所有信息。 (标题,描述,标签等)。

所以我到目前为止创建

  • SoundcloudPageType(包含简单的属性,如标题,描述,持续时间等)
  • 我已经写了的SoundCloud API小POC这让我所有的信息和反序列化进入对象。

我现在需要的是这两者之间的桥梁。我认为创建类似于“PageLinkReference”的地方,你可以点击[...]按钮,然后问你“SoundCloud音频的URL”,一旦有人进入,我会做一个REST api调用来预先填充所有其他属性在页面上。

现在,这只是一个想法。我想运行它通过你们看,如果

  1. 这是可能的。
  2. 这样做的最佳方式是什么,并有任何教程做类似的事情。

我不想破解我的方式通过EPiServer,但利用什么EPiServer可能已经提供。

回答

1

我会将一个简短的字符串属性添加到SoundcloudPageType并让用户粘贴到该字段中。

如果您正在使用PageTypeBuilder是这样的:在EPI的节约活动之一

[PageTypeProperty(
     EditCaption = "Soundcloud Url", 
     Type = typeof(PropertyString), 
     SortOrder = 2010, 
     UniqueValuePerLanguage = false, 
     Searchable = true)] 
public virtual string SoundcloudUrl { get; set; } 

然后,你既可以获取“请求”或读取和存储(最容易在其他属性您添加)。与EPI集成时看看常见模式的乔尔的文章:

http://joelabrahamsson.com/episerver-integration-patterns/

+0

是否有一个钩或方法我可以在我的页面类型上覆盖,像“OnSave”,这样我就可以使用该URL并在保存管理页面时进行调用以填充所有字段? – Luke

+1

是的,在你的情况下,将相同的方法添加到事件CreatedPage和SavedPage。下面是一个例子:http://world.episerver.com/Blogs/Anders-Hattestad/Dates/2011/2/Auto-create-sub-pages-when-a-page-is-created/ –

+0

真棒!谢谢! – Luke