Заполните другие свойства свойством

Я совсем недавно был назначен на проект EPiServer. Однако я - разработчик.Net, мне никогда не доставляло удовольствия работать с ES.

Мне было дано задание создать мягкую "интеграцию" со SoundCloud. Наши пользователи хотели бы скопировать / вставить URL в песню SoundCloud, и тогда я смогу использовать их API для получения всей информации об аудио. (заголовок, описание, теги и т. д.).

Итак, что я создал до сих пор

  • SoundcloudPageType (содержит простые свойства, такие как заголовок, описание, продолжительность и т. Д.)
  • Я написал небольшой POC для Soundcloud API, который получает всю информацию и десериализует ее в объект.

Сейчас мне нужен мост между этими двумя. Я думал, что создавая что-то вроде "PageLinkReference", где вы можете нажать кнопку [...], которая затем спросит вас "URL к звуку SoundCloud", как только человек введет, что я сделаю вызов API REST для предварительного заполнения всех других свойств. на странице.

Теперь это просто идея. Я хотел бы пройти мимо вас, ребята, чтобы увидеть, если

  1. Это возможно.
  2. Каков наилучший способ сделать это и есть ли учебники, которые делают что-то подобное.

Я не хочу взламывать и пробивать свой путь через EPiServer, но использовать то, что EPiServer уже может предоставить.

2 ответа

Решение

Я добавил бы свойство короткой строки в SoundcloudPageType и позволил бы пользователям вставлять в это поле.

Если вы используете PageTypeBuilder что-то вроде этого:

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

Затем вы можете либо извлечь "по запросу", либо извлечь и сохранить (проще всего для других добавленных вами свойств) в одном из событий сохранения EPi. Взгляните на статью общих шаблонов Джоэла при интеграции с EPi:

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

Вы можете использовать плагин динамического содержимого oEmbed, который должен поддерживать soundcloud

http://nuget.episerver.com/en/?search=oembed&sort=MostDownloads&page=1&pageSize=10

Другие вопросы по тегам