Episerver — как отправить уведомление во время события EventsPublishedContent

Я видел несколько примеров того, как отправлять сообщения проверки обратно в пользовательский интерфейс при редактировании контента, как этот.

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];
    }
}

Однако я хотел бы отправить сообщение обратно в пользовательский интерфейс после перехвата события опубликованного содержимого, но этот метод возвращает 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?
    }
}

person Ayo Adesina    schedule 16.04.2018    source источник


Ответы (1)


Вы можете сделать это внутри EventsPublishedContent в своем примере кода:

e.CancelAction = true;
e.CancelReason = "This message will be displayed in the UI.";
person Ted Nyberg    schedule 17.04.2018
comment
Это было бы отменой действия, я не хочу отменять действие, я просто хочу дать пользователю уведомление. - person Ayo Adesina; 18.04.2018
comment
О, я неправильно понял, я думал, вы хотите аннулировать действие. Вы смотрели уведомления? world.episerver.com/documentation/developer-guides/CMS/< /а> - person Ted Nyberg; 18.04.2018
comment
Не видел этого раньше, я проверю, сообщения в конечном итоге выглядят так же, как сообщения проверки, как в правом верхнем углу, когда вы нажимаете «Опубликовать»? - person Ayo Adesina; 18.04.2018
comment
Нет, они появятся среди уведомлений пользователя. Красное число рядом с кнопкой «Опубликовать» зарезервировано для ошибок проверки, поэтому с точки зрения UX было бы лучше отображать ваши сообщения в другом месте. Вы всегда можете создать свой собственный виджет Dojo, чтобы иметь полный контроль над тем, как/где отображается ваш отзыв о пользовательском интерфейсе. - person Ted Nyberg; 18.04.2018