このように、コンテンツの編集中に検証メッセージを UI に送り返す方法の例をいくつか見てきました。
public class StandardPageValidator : IValidate<standardpage>
{
IEnumerable<validationerror> IValidate<standardpage>.Validate(StandardPage instance)
{
// Silly example to validate if the PageName and MainBody properties start with the same letter
if (instance.PageName.StartsWith(EPiServer.Core.Html.TextIndexer.StripHtml(instance.MainBody.ToHtmlString().Substring(0, 1), int.MaxValue)))
{
return new[] { new ValidationError() {
ErrorMessage = "Main body and PageName cannot start with the same letter",
PropertyName = "PageName", RelatedProperties = new string[] { "MainBody" },
Severity = ValidationErrorSeverity.Error,
ValidationType = ValidationErrorType.AttributeMatched
} };
}
return new ValidationError[0];
}
}
しかし、Published Content Event をインターセプトした後にメッセージを UI に送り返したいのですが、このメソッドは void を返すので、どうすればよいですか?
public void Initialize(InitializationEngine context)
{
var events = ServiceLocator.Current.GetInstance<IContentEvents>();
events.PublishedContent += EventsPublishedContent;
}
private void EventsPublishedContent(object sender, ContentEventArgs e)
{
if (e.Content is myType)
{
//do some business logic work....
//How can I send a Info Message back to the UI here?
}
}